Index: chrome/test/remoting/remote_desktop_browsertest.cc |
diff --git a/chrome/test/remoting/remote_desktop_browsertest.cc b/chrome/test/remoting/remote_desktop_browsertest.cc |
index d9a826510c65ae179654d548cf479c5a20a54af1..cf34624e6956e46b062f18ad1dec5fb12124bc0b 100644 |
--- a/chrome/test/remoting/remote_desktop_browsertest.cc |
+++ b/chrome/test/remoting/remote_desktop_browsertest.cc |
@@ -474,6 +474,9 @@ void RemoteDesktopBrowserTest::SetUpTestForMe2Me() { |
} |
void RemoteDesktopBrowserTest::Auth() { |
+ // For this test, we must be given the user-name and password. |
+ ASSERT_TRUE(!username_.empty() && !password_.empty()); |
+ |
Authorize(); |
Authenticate(); |
Approve(); |
@@ -572,8 +575,25 @@ void RemoteDesktopBrowserTest::ParseCommandLine() { |
override_user_data_dir); |
} |
- username_ = command_line->GetSwitchValueASCII(kUsername); |
- password_ = command_line->GetSwitchValueASCII(kkPassword); |
+ CommandLine::StringType accounts_file = |
+ command_line->GetSwitchValueNative(kAccountsFile); |
+ std::string account_type = command_line->GetSwitchValueASCII(kAccountType); |
+ if (!accounts_file.empty()) { |
+ // We've been passed in a file containing accounts information. |
+ // In this case, we'll obtain the user-name and password information from |
+ // the specified file, even if user-name and password have been specified |
+ // on the command-line. |
+ base::FilePath accounts_file_path((base::FilePath(accounts_file))); |
+ ASSERT_FALSE(account_type.empty()); |
+ ASSERT_TRUE(base::PathExists((base::FilePath(accounts_file)))); |
+ SetUserNameAndPassword((base::FilePath(accounts_file)), account_type); |
+ } else { |
+ // No file for accounts specified. Read user-name and password from command |
+ // line. |
+ username_ = command_line->GetSwitchValueASCII(kUserName); |
+ password_ = command_line->GetSwitchValueASCII(kUserPassword); |
+ } |
+ |
me2me_pin_ = command_line->GetSwitchValueASCII(kMe2MePin); |
remote_host_name_ = command_line->GetSwitchValueASCII(kRemoteHostName); |
extension_name_ = command_line->GetSwitchValueASCII(kExtensionName); |
@@ -798,6 +818,27 @@ void RemoteDesktopBrowserTest::DismissHostVersionWarningIfVisible() { |
ClickOnControl("host-needs-update-connect-button"); |
} |
+void RemoteDesktopBrowserTest::SetUserNameAndPassword( |
+ const base::FilePath &accounts_file_path, const std::string& account_type) { |
+ |
+ // Read contents of accounts file. |
+ std::string accounts_info; |
+ ASSERT_TRUE(base::ReadFileToString(accounts_file_path, &accounts_info)); |
+ |
+ // Get the root dictionary from the input json file contents. |
+ scoped_ptr<base::Value> root( |
+ base::JSONReader::Read(accounts_info, base::JSON_ALLOW_TRAILING_COMMAS)); |
+ |
+ const base::DictionaryValue* root_dict = NULL; |
+ ASSERT_TRUE(root.get() && root->GetAsDictionary(&root_dict)); |
+ |
+ // Now get the dictionary for the specified account type. |
+ const base::DictionaryValue* account_dict = NULL; |
+ ASSERT_TRUE(root_dict->GetDictionary(account_type, &account_dict)); |
+ ASSERT_TRUE(account_dict->GetString(kUserName, &username_)); |
+ ASSERT_TRUE(account_dict->GetString(kUserPassword, &password_)); |
+} |
+ |
// static |
bool RemoteDesktopBrowserTest::IsAuthenticatedInWindow( |
content::WebContents* web_contents) { |