OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/browser/ui/browser.h" | 5 #include "chrome/browser/ui/browser.h" |
6 #include "chrome/browser/ui/browser_tabstrip.h" | 6 #include "chrome/browser/ui/browser_tabstrip.h" |
7 #include "chrome/test/base/in_process_browser_test.h" | 7 #include "chrome/test/base/in_process_browser_test.h" |
8 #include "chrome/test/base/ui_test_utils.h" | 8 #include "chrome/test/base/ui_test_utils.h" |
9 #include "content/public/browser/web_contents.h" | 9 #include "content/public/browser/web_contents.h" |
10 #include "content/public/test/browser_test_utils.h" | 10 #include "content/public/test/browser_test_utils.h" |
11 #include "net/test/test_server.h" | 11 #include "net/test/test_server.h" |
12 | 12 |
13 class LoadtimesExtensionBindingsTest : public InProcessBrowserTest { | 13 class LoadtimesExtensionBindingsTest : public InProcessBrowserTest { |
14 public: | 14 public: |
15 LoadtimesExtensionBindingsTest() {} | 15 LoadtimesExtensionBindingsTest() {} |
16 | 16 |
17 void CompareBeforeAndAfter() { | 17 void CompareBeforeAndAfter() { |
18 // TODO(simonjam): There's a race on whether or not first paint is populated | 18 // TODO(simonjam): There's a race on whether or not first paint is populated |
19 // before we read them. We ought to test that too. Until the race is fixed, | 19 // before we read them. We ought to test that too. Until the race is fixed, |
20 // zero it out so the test is stable. | 20 // zero it out so the test is stable. |
21 content::RenderViewHost* rvh = | 21 content::RenderViewHost* rvh = |
22 chrome::GetActiveWebContents(browser())->GetRenderViewHost(); | 22 chrome::GetActiveWebContents(browser())->GetRenderViewHost(); |
23 ASSERT_TRUE(content::ExecuteJavaScript( | 23 ASSERT_TRUE(content::ExecuteJavaScript( |
24 rvh, L"", | 24 rvh, |
25 L"window.before.firstPaintAfterLoadTime = 0;" | 25 "", |
26 L"window.before.firstPaintTime = 0;" | 26 "window.before.firstPaintAfterLoadTime = 0;" |
27 L"window.after.firstPaintAfterLoadTime = 0;" | 27 "window.before.firstPaintTime = 0;" |
28 L"window.after.firstPaintTime = 0;")); | 28 "window.after.firstPaintAfterLoadTime = 0;" |
| 29 "window.after.firstPaintTime = 0;")); |
29 | 30 |
30 std::string before; | 31 std::string before; |
31 std::string after; | 32 std::string after; |
32 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( | 33 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( |
33 rvh, L"", L"window.domAutomationController.send(" | 34 rvh, |
34 L"JSON.stringify(before))", &before)); | 35 "", |
| 36 "window.domAutomationController.send(" |
| 37 " JSON.stringify(before))", |
| 38 &before)); |
35 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( | 39 ASSERT_TRUE(content::ExecuteJavaScriptAndExtractString( |
36 rvh, L"", L"window.domAutomationController.send(" | 40 rvh, |
37 L"JSON.stringify(after))", &after)); | 41 "", |
| 42 "window.domAutomationController.send(" |
| 43 " JSON.stringify(after))", |
| 44 &after)); |
38 EXPECT_EQ(before, after); | 45 EXPECT_EQ(before, after); |
39 } | 46 } |
40 }; | 47 }; |
41 | 48 |
42 IN_PROC_BROWSER_TEST_F(LoadtimesExtensionBindingsTest, | 49 IN_PROC_BROWSER_TEST_F(LoadtimesExtensionBindingsTest, |
43 LoadTimesSameAfterClientInDocNavigation) { | 50 LoadTimesSameAfterClientInDocNavigation) { |
44 ASSERT_TRUE(test_server()->Start()); | 51 ASSERT_TRUE(test_server()->Start()); |
45 GURL plain_url = test_server()->GetURL("blank"); | 52 GURL plain_url = test_server()->GetURL("blank"); |
46 ui_test_utils::NavigateToURL(browser(), plain_url); | 53 ui_test_utils::NavigateToURL(browser(), plain_url); |
47 content::RenderViewHost* rvh = | 54 content::RenderViewHost* rvh = |
48 chrome::GetActiveWebContents(browser())->GetRenderViewHost(); | 55 chrome::GetActiveWebContents(browser())->GetRenderViewHost(); |
49 ASSERT_TRUE(content::ExecuteJavaScript( | 56 ASSERT_TRUE(content::ExecuteJavaScript( |
50 rvh, L"", L"window.before = window.chrome.loadTimes()")); | 57 rvh, "", "window.before = window.chrome.loadTimes()")); |
51 ASSERT_TRUE(content::ExecuteJavaScript( | 58 ASSERT_TRUE(content::ExecuteJavaScript( |
52 rvh, L"", L"window.location.href = window.location + \"#\"")); | 59 rvh, "", "window.location.href = window.location + \"#\"")); |
53 ASSERT_TRUE(content::ExecuteJavaScript( | 60 ASSERT_TRUE(content::ExecuteJavaScript( |
54 rvh, L"", L"window.after = window.chrome.loadTimes()")); | 61 rvh, "", "window.after = window.chrome.loadTimes()")); |
55 CompareBeforeAndAfter(); | 62 CompareBeforeAndAfter(); |
56 } | 63 } |
57 | 64 |
58 IN_PROC_BROWSER_TEST_F(LoadtimesExtensionBindingsTest, | 65 IN_PROC_BROWSER_TEST_F(LoadtimesExtensionBindingsTest, |
59 LoadTimesSameAfterUserInDocNavigation) { | 66 LoadTimesSameAfterUserInDocNavigation) { |
60 ASSERT_TRUE(test_server()->Start()); | 67 ASSERT_TRUE(test_server()->Start()); |
61 GURL plain_url = test_server()->GetURL("blank"); | 68 GURL plain_url = test_server()->GetURL("blank"); |
62 GURL hash_url(plain_url.spec() + "#"); | 69 GURL hash_url(plain_url.spec() + "#"); |
63 ui_test_utils::NavigateToURL(browser(), plain_url); | 70 ui_test_utils::NavigateToURL(browser(), plain_url); |
64 content::RenderViewHost* rvh = | 71 content::RenderViewHost* rvh = |
65 chrome::GetActiveWebContents(browser())->GetRenderViewHost(); | 72 chrome::GetActiveWebContents(browser())->GetRenderViewHost(); |
66 ASSERT_TRUE(content::ExecuteJavaScript( | 73 ASSERT_TRUE(content::ExecuteJavaScript( |
67 rvh, L"", L"window.before = window.chrome.loadTimes()")); | 74 rvh, "", "window.before = window.chrome.loadTimes()")); |
68 ui_test_utils::NavigateToURL(browser(), hash_url); | 75 ui_test_utils::NavigateToURL(browser(), hash_url); |
69 ASSERT_TRUE(content::ExecuteJavaScript( | 76 ASSERT_TRUE(content::ExecuteJavaScript( |
70 rvh, L"", L"window.after = window.chrome.loadTimes()")); | 77 rvh, "", "window.after = window.chrome.loadTimes()")); |
71 CompareBeforeAndAfter(); | 78 CompareBeforeAndAfter(); |
72 } | 79 } |
OLD | NEW |