reset_user_pass(&up);
+ /* Test various valid characters */
+ /*FIXME: query_user_exec() called even though nothing queued */
+ will_return(query_user_exec_builtin, true);
+ /* FIXME? content after first two lines just ignored */
+ assert_true(get_user_pass_cr(&up, "#iuser and 커뮤니티\n//ipasswörd!\nsome other content\nnot relevant", "UT", flags, NULL));
+ assert_true(up.defined);
+ assert_string_equal(up.username, "#iuser and 커뮤니티");
+ assert_string_equal(up.password, "//ipasswörd!");
+
+ reset_user_pass(&up);
+
+ /* Test various invalid characters */
+ /*FIXME: query_user_exec() called even though nothing queued */
+ will_return(query_user_exec_builtin, true);
+ /*FIXME? allows arbitrary crap if c > 127 */
+ /*FIXME? silently removes control characters */
+ assert_true(get_user_pass_cr(&up, "\tiuser\r\nipass\xffwo\x1erd", "UT", flags, NULL));
+ assert_true(up.defined);
+ assert_string_equal(up.username, "iuser");
+ assert_string_equal(up.password, "ipass\xffword");
+
+ reset_user_pass(&up);
+
expect_string(query_user_exec_builtin, query_user[i].prompt, "Enter UT Password:");
will_return(query_user_exec_builtin, "cpassword");
will_return(query_user_exec_builtin, true);