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..826477783a7a69dd3b7b0ee492d7cb90687ecb7c 100644 |
--- a/chrome/test/remoting/remote_desktop_browsertest.cc |
+++ b/chrome/test/remoting/remote_desktop_browsertest.cc |
@@ -34,6 +34,7 @@ RemoteDesktopBrowserTest::~RemoteDesktopBrowserTest() {} |
void RemoteDesktopBrowserTest::SetUp() { |
ParseCommandLine(); |
+ |
PlatformAppBrowserTest::SetUp(); |
} |
@@ -474,6 +475,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()); |
anandc
2014/10/09 00:15:25
Added these just to fail quicker.
|
+ |
Authorize(); |
Authenticate(); |
Approve(); |
@@ -572,8 +576,24 @@ void RemoteDesktopBrowserTest::ParseCommandLine() { |
override_user_data_dir); |
} |
- username_ = command_line->GetSwitchValueASCII(kUsername); |
- password_ = command_line->GetSwitchValueASCII(kkPassword); |
+ std::string accounts_file = command_line->GetSwitchValueASCII(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(accounts_file); |
+ ASSERT_FALSE(account_type.empty()); |
+ ASSERT_TRUE(base::PathExists(accounts_file_path)); |
+ SetUserNameAndPassword(accounts_file_path, 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(kPassword); |
+ } |
+ |
me2me_pin_ = command_line->GetSwitchValueASCII(kMe2MePin); |
remote_host_name_ = command_line->GetSwitchValueASCII(kRemoteHostName); |
extension_name_ = command_line->GetSwitchValueASCII(kExtensionName); |
@@ -798,6 +818,30 @@ 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)); |
+ DCHECK(root.get() != NULL); |
weitao
2014/10/09 00:23:28
Change to ASSERT_TRUE?
anandc
2014/10/09 00:39:59
Merged with the following ASSERT_TRUE.
|
+ |
+ const base::DictionaryValue* root_dict = NULL; |
+ ASSERT_TRUE(root.get() && root->GetAsDictionary(&root_dict)); |
weitao
2014/10/09 00:23:28
You have already DCHECKed on root.Get() earlier.
anandc
2014/10/09 00:39:59
Done.
|
+ |
+ // Now get the dictionary for the specified account type. |
+ const base::DictionaryValue* account_dict = NULL; |
+ ASSERT_TRUE(root_dict->GetDictionary(account_type, &account_dict)); |
+ |
weitao
2014/10/09 00:23:28
Remove this blank line.
anandc
2014/10/09 00:39:59
Done.
|
+ ASSERT_TRUE(account_dict->GetString(kUserName, &username_)); |
+ |
weitao
2014/10/09 00:23:28
ditto.
anandc
2014/10/09 00:39:59
Done.
|
+ ASSERT_TRUE(account_dict->GetString(kPassword, &password_)); |
+} |
+ |
// static |
bool RemoteDesktopBrowserTest::IsAuthenticatedInWindow( |
content::WebContents* web_contents) { |