Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(421)

Side by Side Diff: chrome/browser/extensions/api/web_navigation/frame_navigation_state_unittest.cc

Issue 10790141: Revert "Revert 148074 - Pass the render process id to the FrameNavigationState." (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "base/values.h" 5 #include "base/values.h"
6 #include "chrome/browser/extensions/api/web_navigation/frame_navigation_state.h" 6 #include "chrome/browser/extensions/api/web_navigation/frame_navigation_state.h"
7 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 7 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
8 #include "chrome/test/base/testing_profile.h" 8 #include "chrome/test/base/testing_profile.h"
9 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
10 10
11 namespace extensions { 11 namespace extensions {
12 12
13 class FrameNavigationStateTest : public ChromeRenderViewHostTestHarness { 13 class FrameNavigationStateTest : public ChromeRenderViewHostTestHarness {
14 }; 14 };
15 15
16 // Test that a frame is correctly tracked, and removed once the tab contents 16 // Test that a frame is correctly tracked, and removed once the tab contents
17 // goes away. 17 // goes away.
18 TEST_F(FrameNavigationStateTest, TrackFrame) { 18 TEST_F(FrameNavigationStateTest, TrackFrame) {
19 FrameNavigationState navigation_state; 19 FrameNavigationState navigation_state;
20 const int64 frame_id1 = 23; 20 const FrameNavigationState::FrameID frame_id1(23, 1);
21 const int64 frame_id2 = 42; 21 const FrameNavigationState::FrameID frame_id2(42, 1);
22 const GURL url1("http://www.google.com/"); 22 const GURL url1("http://www.google.com/");
23 const GURL url2("http://mail.google.com/"); 23 const GURL url2("http://mail.google.com/");
24 24
25 // Create a main frame. 25 // Create a main frame.
26 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id1)); 26 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id1));
27 EXPECT_FALSE(navigation_state.IsValidFrame(frame_id1)); 27 EXPECT_FALSE(navigation_state.IsValidFrame(frame_id1));
28 navigation_state.TrackFrame(frame_id1, url1, true, false); 28 navigation_state.TrackFrame(frame_id1, url1, true, false);
29 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1)); 29 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
30 EXPECT_TRUE(navigation_state.IsValidFrame(frame_id1)); 30 EXPECT_TRUE(navigation_state.IsValidFrame(frame_id1));
31 31
32 // Add a sub frame. 32 // Add a sub frame.
33 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2)); 33 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2));
34 EXPECT_FALSE(navigation_state.IsValidFrame(frame_id2)); 34 EXPECT_FALSE(navigation_state.IsValidFrame(frame_id2));
35 navigation_state.TrackFrame(frame_id2, url2, false, false); 35 navigation_state.TrackFrame(frame_id2, url2, false, false);
36 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2)); 36 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2));
37 EXPECT_TRUE(navigation_state.IsValidFrame(frame_id2)); 37 EXPECT_TRUE(navigation_state.IsValidFrame(frame_id2));
38 38
39 // Check frame state. 39 // Check frame state.
40 EXPECT_TRUE(navigation_state.IsMainFrame(frame_id1)); 40 EXPECT_TRUE(navigation_state.IsMainFrame(frame_id1));
41 EXPECT_EQ(url1, navigation_state.GetUrl(frame_id1)); 41 EXPECT_EQ(url1, navigation_state.GetUrl(frame_id1));
42 EXPECT_FALSE(navigation_state.IsMainFrame(frame_id2)); 42 EXPECT_FALSE(navigation_state.IsMainFrame(frame_id2));
43 EXPECT_EQ(url2, navigation_state.GetUrl(frame_id2)); 43 EXPECT_EQ(url2, navigation_state.GetUrl(frame_id2));
44 EXPECT_EQ(frame_id1, navigation_state.GetMainFrameID()); 44 EXPECT_EQ(frame_id1, navigation_state.GetMainFrameID());
45 } 45 }
46 46
47 // Test that no events can be sent for a frame after an error occurred, but 47 // Test that no events can be sent for a frame after an error occurred, but
48 // before a new navigation happened in this frame. 48 // before a new navigation happened in this frame.
49 TEST_F(FrameNavigationStateTest, ErrorState) { 49 TEST_F(FrameNavigationStateTest, ErrorState) {
50 FrameNavigationState navigation_state; 50 FrameNavigationState navigation_state;
51 const int64 frame_id = 42; 51 const FrameNavigationState::FrameID frame_id(42, 1);
52 const GURL url("http://www.google.com/"); 52 const GURL url("http://www.google.com/");
53 53
54 navigation_state.TrackFrame(frame_id, url, true, false); 54 navigation_state.TrackFrame(frame_id, url, true, false);
55 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id)); 55 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id));
56 EXPECT_FALSE(navigation_state.GetErrorOccurredInFrame(frame_id)); 56 EXPECT_FALSE(navigation_state.GetErrorOccurredInFrame(frame_id));
57 57
58 // After an error occurred, no further events should be sent. 58 // After an error occurred, no further events should be sent.
59 navigation_state.SetErrorOccurredInFrame(frame_id); 59 navigation_state.SetErrorOccurredInFrame(frame_id);
60 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id)); 60 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id));
61 EXPECT_TRUE(navigation_state.GetErrorOccurredInFrame(frame_id)); 61 EXPECT_TRUE(navigation_state.GetErrorOccurredInFrame(frame_id));
62 62
63 // Navigations to a network error page should be ignored. 63 // Navigations to a network error page should be ignored.
64 navigation_state.TrackFrame(frame_id, GURL(), true, true); 64 navigation_state.TrackFrame(frame_id, GURL(), true, true);
65 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id)); 65 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id));
66 EXPECT_TRUE(navigation_state.GetErrorOccurredInFrame(frame_id)); 66 EXPECT_TRUE(navigation_state.GetErrorOccurredInFrame(frame_id));
67 67
68 // However, when the frame navigates again, it should send events again. 68 // However, when the frame navigates again, it should send events again.
69 navigation_state.TrackFrame(frame_id, url, true, false); 69 navigation_state.TrackFrame(frame_id, url, true, false);
70 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id)); 70 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id));
71 EXPECT_FALSE(navigation_state.GetErrorOccurredInFrame(frame_id)); 71 EXPECT_FALSE(navigation_state.GetErrorOccurredInFrame(frame_id));
72 } 72 }
73 73
74 // Tests that for a sub frame, no events are send after an error occurred, but 74 // Tests that for a sub frame, no events are send after an error occurred, but
75 // before a new navigation happened in this frame. 75 // before a new navigation happened in this frame.
76 TEST_F(FrameNavigationStateTest, ErrorStateFrame) { 76 TEST_F(FrameNavigationStateTest, ErrorStateFrame) {
77 FrameNavigationState navigation_state; 77 FrameNavigationState navigation_state;
78 const int64 frame_id1 = 23; 78 const FrameNavigationState::FrameID frame_id1(23, 1);
79 const int64 frame_id2 = 42; 79 const FrameNavigationState::FrameID frame_id2(42, 1);
80 const GURL url("http://www.google.com/"); 80 const GURL url("http://www.google.com/");
81 81
82 navigation_state.TrackFrame(frame_id1, url, true, false); 82 navigation_state.TrackFrame(frame_id1, url, true, false);
83 navigation_state.TrackFrame(frame_id2, url, false, false); 83 navigation_state.TrackFrame(frame_id2, url, false, false);
84 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1)); 84 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
85 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2)); 85 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2));
86 86
87 // After an error occurred, no further events should be sent. 87 // After an error occurred, no further events should be sent.
88 navigation_state.SetErrorOccurredInFrame(frame_id2); 88 navigation_state.SetErrorOccurredInFrame(frame_id2);
89 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1)); 89 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
90 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2)); 90 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2));
91 91
92 // Navigations to a network error page should be ignored. 92 // Navigations to a network error page should be ignored.
93 navigation_state.TrackFrame(frame_id2, GURL(), false, true); 93 navigation_state.TrackFrame(frame_id2, GURL(), false, true);
94 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1)); 94 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
95 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2)); 95 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id2));
96 96
97 // However, when the frame navigates again, it should send events again. 97 // However, when the frame navigates again, it should send events again.
98 navigation_state.TrackFrame(frame_id2, url, false, false); 98 navigation_state.TrackFrame(frame_id2, url, false, false);
99 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1)); 99 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id1));
100 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2)); 100 EXPECT_TRUE(navigation_state.CanSendEvents(frame_id2));
101 } 101 }
102 102
103 // Tests that no events are send for a not web-safe scheme. 103 // Tests that no events are send for a not web-safe scheme.
104 TEST_F(FrameNavigationStateTest, WebSafeScheme) { 104 TEST_F(FrameNavigationStateTest, WebSafeScheme) {
105 FrameNavigationState navigation_state; 105 FrameNavigationState navigation_state;
106 const int64 frame_id = 23; 106 const FrameNavigationState::FrameID frame_id(23, 1);
107 const GURL url("unsafe://www.google.com/"); 107 const GURL url("unsafe://www.google.com/");
108 108
109 navigation_state.TrackFrame(frame_id, url, true, false); 109 navigation_state.TrackFrame(frame_id, url, true, false);
110 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id)); 110 EXPECT_FALSE(navigation_state.CanSendEvents(frame_id));
111 } 111 }
112 112
113 } // namespace extensions 113 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698