| 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 |