| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/test/ui/ui_test.h" | 5 #include "chrome/test/ui/ui_test.h" |
| 6 | 6 |
| 7 #include "base/test/test_timeouts.h" | 7 #include "base/test/test_timeouts.h" |
| 8 #include "base/utf_string_conversions.h" |
| 8 #include "chrome/app/chrome_command_ids.h" | 9 #include "chrome/app/chrome_command_ids.h" |
| 9 #include "chrome/browser/dom_ui/new_tab_ui.h" | 10 #include "chrome/browser/dom_ui/new_tab_ui.h" |
| 10 #include "chrome/browser/prefs/pref_value_store.h" | 11 #include "chrome/browser/prefs/pref_value_store.h" |
| 11 #include "chrome/browser/sync/signin_manager.h" | 12 #include "chrome/browser/sync/signin_manager.h" |
| 12 #include "chrome/common/chrome_switches.h" | 13 #include "chrome/common/chrome_switches.h" |
| 13 #include "chrome/common/json_pref_store.h" | 14 #include "chrome/common/json_pref_store.h" |
| 14 #include "chrome/common/pref_names.h" | 15 #include "chrome/common/pref_names.h" |
| 15 #include "chrome/common/url_constants.h" | 16 #include "chrome/common/url_constants.h" |
| 16 #include "chrome/test/automation/browser_proxy.h" | 17 #include "chrome/test/automation/browser_proxy.h" |
| 17 #include "chrome/test/automation/tab_proxy.h" | 18 #include "chrome/test/automation/tab_proxy.h" |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 ASSERT_TRUE(window.get()); | 59 ASSERT_TRUE(window.get()); |
| 59 | 60 |
| 60 ASSERT_TRUE(window->SetStringPreference(prefs::kGoogleServicesUsername, | 61 ASSERT_TRUE(window->SetStringPreference(prefs::kGoogleServicesUsername, |
| 61 "user@gmail.com")); | 62 "user@gmail.com")); |
| 62 // Bring up a new tab page. | 63 // Bring up a new tab page. |
| 63 ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB)); | 64 ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB)); |
| 64 | 65 |
| 65 scoped_refptr<TabProxy> tab = window->GetActiveTab(); | 66 scoped_refptr<TabProxy> tab = window->GetActiveTab(); |
| 66 ASSERT_TRUE(tab.get()); | 67 ASSERT_TRUE(tab.get()); |
| 67 | 68 |
| 68 std::wstring displayed_username; | |
| 69 // The login span should be eventually populated and have the | 69 // The login span should be eventually populated and have the |
| 70 // correct value. | 70 // correct value. |
| 71 ASSERT_TRUE(WaitUntilJavaScriptCondition(tab, L"", | 71 ASSERT_TRUE(WaitUntilJavaScriptCondition(tab, L"", |
| 72 L"window.domAutomationController.send(" | 72 L"window.domAutomationController.send(" |
| 73 L"document.getElementById('login-username').innerText.length > 0)", | 73 L"document.getElementById('login-username').innerText.length > 0)", |
| 74 TestTimeouts::action_max_timeout_ms())); | 74 TestTimeouts::action_max_timeout_ms())); |
| 75 | 75 |
| 76 string16 displayed_username; |
| 76 ASSERT_TRUE(tab->ExecuteAndExtractString( | 77 ASSERT_TRUE(tab->ExecuteAndExtractString( |
| 77 L"", | 78 string16(), |
| 78 L"window.domAutomationController.send(" | 79 ASCIIToUTF16("window.domAutomationController.send(" |
| 79 L"document.getElementById('login-username').innerText)", | 80 "document.getElementById('login-username').innerText)"), |
| 80 &displayed_username)); | 81 &displayed_username)); |
| 81 | 82 |
| 82 EXPECT_EQ(L"user@gmail.com", displayed_username); | 83 EXPECT_EQ(ASCIIToUTF16("user@gmail.com"), displayed_username); |
| 83 } | 84 } |
| 84 | 85 |
| 85 // Loads about:hang into two NTP tabs, ensuring we don't crash. | 86 // Loads about:hang into two NTP tabs, ensuring we don't crash. |
| 86 // See http://crbug.com/59859. | 87 // See http://crbug.com/59859. |
| 87 TEST_F(NewTabUITest, AboutHangInNTP) { | 88 TEST_F(NewTabUITest, AboutHangInNTP) { |
| 88 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); | 89 scoped_refptr<BrowserProxy> window(automation()->GetBrowserWindow(0)); |
| 89 ASSERT_TRUE(window.get()); | 90 ASSERT_TRUE(window.get()); |
| 90 | 91 |
| 91 // Bring up a new tab page. | 92 // Bring up a new tab page. |
| 92 ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB)); | 93 ASSERT_TRUE(window->RunCommand(IDC_NEW_TAB)); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 145 | 146 |
| 146 // Go to the "new tab page" using its old url, rather than chrome://newtab. | 147 // Go to the "new tab page" using its old url, rather than chrome://newtab. |
| 147 scoped_refptr<TabProxy> tab = window->GetTab(0); | 148 scoped_refptr<TabProxy> tab = window->GetTab(0); |
| 148 ASSERT_TRUE(tab.get()); | 149 ASSERT_TRUE(tab.get()); |
| 149 ASSERT_TRUE(tab->NavigateToURLAsync(GURL("chrome-internal:"))); | 150 ASSERT_TRUE(tab->NavigateToURLAsync(GURL("chrome-internal:"))); |
| 150 int load_time; | 151 int load_time; |
| 151 ASSERT_TRUE(automation()->WaitForInitialNewTabUILoad(&load_time)); | 152 ASSERT_TRUE(automation()->WaitForInitialNewTabUILoad(&load_time)); |
| 152 | 153 |
| 153 // Ensure there are some thumbnails loaded in the page. | 154 // Ensure there are some thumbnails loaded in the page. |
| 154 int thumbnails_count = -1; | 155 int thumbnails_count = -1; |
| 155 ASSERT_TRUE(tab->ExecuteAndExtractInt(L"", | 156 ASSERT_TRUE(tab->ExecuteAndExtractInt( |
| 156 L"window.domAutomationController.send(" | 157 string16(), |
| 157 L"document.getElementsByClassName('thumbnail-container').length)", | 158 ASCIIToUTF16("window.domAutomationController.send(" |
| 159 "document.getElementsByClassName('thumbnail-container').length)"), |
| 158 &thumbnails_count)); | 160 &thumbnails_count)); |
| 159 EXPECT_GT(thumbnails_count, 0); | 161 EXPECT_GT(thumbnails_count, 0); |
| 160 } | 162 } |
| 161 | 163 |
| 162 // Flaky on XP bots: http://crbug.com/51726 | 164 // Flaky on XP bots: http://crbug.com/51726 |
| 163 TEST_F(NewTabUITest, FLAKY_UpdateUserPrefsVersion) { | 165 TEST_F(NewTabUITest, FLAKY_UpdateUserPrefsVersion) { |
| 164 // PrefService with JSON user-pref file only, no enforced or advised prefs. | 166 // PrefService with JSON user-pref file only, no enforced or advised prefs. |
| 165 scoped_ptr<PrefService> prefs(new TestingPrefService); | 167 scoped_ptr<PrefService> prefs(new TestingPrefService); |
| 166 | 168 |
| 167 // Does the migration | 169 // Does the migration |
| 168 NewTabUI::RegisterUserPrefs(prefs.get()); | 170 NewTabUI::RegisterUserPrefs(prefs.get()); |
| 169 | 171 |
| 170 ASSERT_EQ(NewTabUI::current_pref_version(), | 172 ASSERT_EQ(NewTabUI::current_pref_version(), |
| 171 prefs->GetInteger(prefs::kNTPPrefVersion)); | 173 prefs->GetInteger(prefs::kNTPPrefVersion)); |
| 172 | 174 |
| 173 // Reset the version | 175 // Reset the version |
| 174 prefs->ClearPref(prefs::kNTPPrefVersion); | 176 prefs->ClearPref(prefs::kNTPPrefVersion); |
| 175 ASSERT_EQ(0, prefs->GetInteger(prefs::kNTPPrefVersion)); | 177 ASSERT_EQ(0, prefs->GetInteger(prefs::kNTPPrefVersion)); |
| 176 | 178 |
| 177 bool migrated = NewTabUI::UpdateUserPrefsVersion(prefs.get()); | 179 bool migrated = NewTabUI::UpdateUserPrefsVersion(prefs.get()); |
| 178 ASSERT_TRUE(migrated); | 180 ASSERT_TRUE(migrated); |
| 179 ASSERT_EQ(NewTabUI::current_pref_version(), | 181 ASSERT_EQ(NewTabUI::current_pref_version(), |
| 180 prefs->GetInteger(prefs::kNTPPrefVersion)); | 182 prefs->GetInteger(prefs::kNTPPrefVersion)); |
| 181 | 183 |
| 182 migrated = NewTabUI::UpdateUserPrefsVersion(prefs.get()); | 184 migrated = NewTabUI::UpdateUserPrefsVersion(prefs.get()); |
| 183 ASSERT_FALSE(migrated); | 185 ASSERT_FALSE(migrated); |
| 184 } | 186 } |
| OLD | NEW |