OLD | NEW |
| (Empty) |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #include "chrome/browser/chromeos/arc/page_transition_util.h" | |
6 #include "testing/gtest/include/gtest/gtest.h" | |
7 #include "ui/base/page_transition_types.h" | |
8 | |
9 namespace arc { | |
10 | |
11 // Tests that ShouldIgnoreNavigation returns false only for | |
12 // PAGE_TRANSITION_LINK. | |
13 TEST(PageTransitionUtilTest, TestShouldIgnoreNavigationWithCoreTypes) { | |
14 EXPECT_FALSE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_LINK, false)); | |
15 EXPECT_FALSE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_LINK, true)); | |
16 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_TYPED, false)); | |
17 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_TYPED, true)); | |
18 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_AUTO_BOOKMARK, false)); | |
19 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_AUTO_BOOKMARK, true)); | |
20 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_AUTO_SUBFRAME, false)); | |
21 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_AUTO_SUBFRAME, true)); | |
22 EXPECT_TRUE( | |
23 ShouldIgnoreNavigation(ui::PAGE_TRANSITION_MANUAL_SUBFRAME, false)); | |
24 EXPECT_TRUE( | |
25 ShouldIgnoreNavigation(ui::PAGE_TRANSITION_MANUAL_SUBFRAME, true)); | |
26 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_GENERATED, false)); | |
27 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_GENERATED, true)); | |
28 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_AUTO_TOPLEVEL, false)); | |
29 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_AUTO_TOPLEVEL, true)); | |
30 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_FORM_SUBMIT, false)); | |
31 EXPECT_FALSE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_FORM_SUBMIT, true)); | |
32 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_RELOAD, false)); | |
33 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_RELOAD, true)); | |
34 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_KEYWORD, false)); | |
35 EXPECT_TRUE(ShouldIgnoreNavigation(ui::PAGE_TRANSITION_KEYWORD, true)); | |
36 EXPECT_TRUE( | |
37 ShouldIgnoreNavigation(ui::PAGE_TRANSITION_KEYWORD_GENERATED, false)); | |
38 EXPECT_TRUE( | |
39 ShouldIgnoreNavigation(ui::PAGE_TRANSITION_KEYWORD_GENERATED, true)); | |
40 | |
41 static_assert( | |
42 ui::PAGE_TRANSITION_KEYWORD_GENERATED == ui::PAGE_TRANSITION_LAST_CORE, | |
43 "Not all core transition types are covered here"); | |
44 } | |
45 | |
46 // Tests that ShouldIgnoreNavigation returns true when no qualifiers except | |
47 // server redirect are provided. | |
48 TEST(PageTransitionUtilTest, TestShouldIgnoreNavigationWithLinkWithQualifiers) { | |
49 // The navigation is triggered by Forward or Back button. | |
50 EXPECT_TRUE(ShouldIgnoreNavigation( | |
51 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
52 ui::PAGE_TRANSITION_FORWARD_BACK), | |
53 false)); | |
54 EXPECT_TRUE(ShouldIgnoreNavigation( | |
55 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_FORM_SUBMIT | | |
56 ui::PAGE_TRANSITION_FORWARD_BACK), | |
57 true)); | |
58 // The user used the address bar to triger the navigation. | |
59 EXPECT_TRUE(ShouldIgnoreNavigation( | |
60 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
61 ui::PAGE_TRANSITION_FROM_ADDRESS_BAR), | |
62 false)); | |
63 // The user pressed the Home button. | |
64 EXPECT_TRUE(ShouldIgnoreNavigation( | |
65 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
66 ui::PAGE_TRANSITION_HOME_PAGE), | |
67 false)); | |
68 // ARC (for example) opened the link in Chrome. | |
69 EXPECT_TRUE(ShouldIgnoreNavigation( | |
70 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
71 ui::PAGE_TRANSITION_FROM_API), | |
72 false)); | |
73 // The navigation is triggered by a client side redirect. | |
74 EXPECT_TRUE(ShouldIgnoreNavigation( | |
75 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
76 ui::PAGE_TRANSITION_CLIENT_REDIRECT), | |
77 false)); | |
78 // Also tests the case with 2+ qualifiers. | |
79 EXPECT_TRUE(ShouldIgnoreNavigation( | |
80 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
81 ui::PAGE_TRANSITION_FROM_ADDRESS_BAR | | |
82 ui::PAGE_TRANSITION_CLIENT_REDIRECT), | |
83 false)); | |
84 } | |
85 | |
86 // Just in case, does the same with ui::PAGE_TRANSITION_TYPED. | |
87 TEST(PageTransitionUtilTest, | |
88 TestShouldIgnoreNavigationWithTypedWithQualifiers) { | |
89 EXPECT_TRUE(ShouldIgnoreNavigation( | |
90 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | | |
91 ui::PAGE_TRANSITION_FORWARD_BACK), | |
92 false)); | |
93 EXPECT_TRUE(ShouldIgnoreNavigation( | |
94 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | | |
95 ui::PAGE_TRANSITION_FORWARD_BACK), | |
96 true)); | |
97 EXPECT_TRUE(ShouldIgnoreNavigation( | |
98 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | | |
99 ui::PAGE_TRANSITION_FROM_ADDRESS_BAR), | |
100 false)); | |
101 EXPECT_TRUE(ShouldIgnoreNavigation( | |
102 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | | |
103 ui::PAGE_TRANSITION_HOME_PAGE), | |
104 false)); | |
105 EXPECT_TRUE(ShouldIgnoreNavigation( | |
106 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | | |
107 ui::PAGE_TRANSITION_FROM_API), | |
108 false)); | |
109 EXPECT_TRUE(ShouldIgnoreNavigation( | |
110 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | | |
111 ui::PAGE_TRANSITION_FROM_ADDRESS_BAR | | |
112 ui::PAGE_TRANSITION_CLIENT_REDIRECT), | |
113 false)); | |
114 } | |
115 | |
116 // Tests that ShouldIgnoreNavigation returns false if SERVER_REDIRECT is the | |
117 // only qualifier given. | |
118 TEST(PageTransitionUtilTest, TestShouldIgnoreNavigationWithServerRedirect) { | |
119 EXPECT_FALSE(ShouldIgnoreNavigation( | |
120 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
121 ui::PAGE_TRANSITION_SERVER_REDIRECT), | |
122 false)); | |
123 EXPECT_FALSE(ShouldIgnoreNavigation( | |
124 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_FORM_SUBMIT | | |
125 ui::PAGE_TRANSITION_SERVER_REDIRECT), | |
126 true)); | |
127 | |
128 EXPECT_TRUE(ShouldIgnoreNavigation( | |
129 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | | |
130 ui::PAGE_TRANSITION_SERVER_REDIRECT | | |
131 ui::PAGE_TRANSITION_FROM_API), | |
132 false)); | |
133 EXPECT_TRUE(ShouldIgnoreNavigation( | |
134 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_FORM_SUBMIT | | |
135 ui::PAGE_TRANSITION_SERVER_REDIRECT | | |
136 ui::PAGE_TRANSITION_FROM_API), | |
137 true)); | |
138 } | |
139 | |
140 } // namespace arc | |
OLD | NEW |