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 are |
| 47 // 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 |
| 74 // Also tests the case with 2+ qualifiers. |
| 75 EXPECT_TRUE(ShouldIgnoreNavigation( |
| 76 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_LINK | |
| 77 ui::PAGE_TRANSITION_FROM_ADDRESS_BAR | |
| 78 ui::PAGE_TRANSITION_CLIENT_REDIRECT), |
| 79 false)); |
| 80 } |
| 81 |
| 82 // Just in case, does the same with ui::PAGE_TRANSITION_TYPED. |
| 83 TEST(PageTransitionUtilTest, |
| 84 TestShouldIgnoreNavigationWithTypedWithQualifiers) { |
| 85 EXPECT_TRUE(ShouldIgnoreNavigation( |
| 86 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | |
| 87 ui::PAGE_TRANSITION_FORWARD_BACK), |
| 88 false)); |
| 89 EXPECT_TRUE(ShouldIgnoreNavigation( |
| 90 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | |
| 91 ui::PAGE_TRANSITION_FORWARD_BACK), |
| 92 true)); |
| 93 EXPECT_TRUE(ShouldIgnoreNavigation( |
| 94 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | |
| 95 ui::PAGE_TRANSITION_FROM_ADDRESS_BAR), |
| 96 false)); |
| 97 EXPECT_TRUE(ShouldIgnoreNavigation( |
| 98 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | |
| 99 ui::PAGE_TRANSITION_HOME_PAGE), |
| 100 false)); |
| 101 EXPECT_TRUE(ShouldIgnoreNavigation( |
| 102 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | |
| 103 ui::PAGE_TRANSITION_FROM_API), |
| 104 false)); |
| 105 EXPECT_TRUE(ShouldIgnoreNavigation( |
| 106 ui::PageTransitionFromInt(ui::PAGE_TRANSITION_TYPED | |
| 107 ui::PAGE_TRANSITION_FROM_ADDRESS_BAR | |
| 108 ui::PAGE_TRANSITION_CLIENT_REDIRECT), |
| 109 false)); |
| 110 } |
| 111 |
| 112 } // namespace arc |
OLD | NEW |