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

Unified Diff: ios/web/navigation/navigation_manager_impl_unittest.mm

Issue 2705293014: Created web::UserAgentType. (Closed)
Patch Set: simplify UA type setter, added TODO Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: ios/web/navigation/navigation_manager_impl_unittest.mm
diff --git a/ios/web/navigation/navigation_manager_impl_unittest.mm b/ios/web/navigation/navigation_manager_impl_unittest.mm
index 420beea84ab5559fe84a6a7da9b5d0718590d983..b6f0819734f964348a9725ee1c60f0a3d931738f 100644
--- a/ios/web/navigation/navigation_manager_impl_unittest.mm
+++ b/ios/web/navigation/navigation_manager_impl_unittest.mm
@@ -515,7 +515,77 @@ void OnNavigationItemCommitted(const LoadCommittedDetails&) override {}
web::NavigationInitiationType::USER_INITIATED);
[session_controller() commitPendingItem];
NavigationItem* visible_item = navigation_manager()->GetVisibleItem();
- EXPECT_TRUE(visible_item->IsOverridingUserAgent());
+ EXPECT_EQ(visible_item->GetUserAgentType(), UserAgentType::DESKTOP);
+}
+
+// Tests that the UserAgentType is propagated to subsequent NavigationItems.
+TEST_F(NavigationManagerTest, UserAgentTypePropagation) {
+ // Test that the first item's UA type is propagated to the second.
Eugene But (OOO till 7-30) 2017/03/02 03:36:34 Do you want to use linebreaks for the code to sepa
kkhorimoto 2017/03/02 04:12:55 Done.
+ navigation_manager()->AddPendingItem(
+ GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
+ web::NavigationInitiationType::USER_INITIATED);
+ [session_controller() commitPendingItem];
+ web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem();
+ ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType());
+ navigation_manager()->AddPendingItem(
+ GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
+ web::NavigationInitiationType::USER_INITIATED);
+ [session_controller() commitPendingItem];
+ web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem();
+ EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType());
+ // Update |item2|'s UA type to DESKTOP and verify that it is propagated to
+ // |item3|.
+ item2->SetUserAgentType(web::UserAgentType::DESKTOP);
+ ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType());
+ navigation_manager()->AddPendingItem(
+ GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
+ web::NavigationInitiationType::USER_INITIATED);
+ [session_controller() commitPendingItem];
+ web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem();
+ EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType());
+}
+
+// Tests that the UserAgentType is propagated to subsequent NavigationItems if
+// a native URL exists in between naviations.
+TEST_F(NavigationManagerTest, UserAgentTypePropagationPastNativeItems) {
+ // Test that the first item's UA type is propagated to the second when a
+ // native page separates the navigations.
+ navigation_manager()->AddPendingItem(
+ GURL("http://www.1.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
+ web::NavigationInitiationType::USER_INITIATED);
+ [session_controller() commitPendingItem];
+ web::NavigationItem* item1 = navigation_manager()->GetLastCommittedItem();
+ ASSERT_EQ(web::UserAgentType::MOBILE, item1->GetUserAgentType());
+ navigation_manager()->AddPendingItem(
+ GURL("testnativecontent://native1"), Referrer(),
Eugene But (OOO till 7-30) 2017/03/02 03:36:34 Please use kTestNativeContentScheme instead of har
kkhorimoto 2017/03/02 04:12:55 Done.
+ ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED);
+ [session_controller() commitPendingItem];
+ web::NavigationItem* nativeItem1 =
Eugene But (OOO till 7-30) 2017/03/02 03:36:34 native_item1
kkhorimoto 2017/03/02 04:12:55 Done.
+ navigation_manager()->GetLastCommittedItem();
+ ASSERT_EQ(web::UserAgentType::NONE, nativeItem1->GetUserAgentType());
+ navigation_manager()->AddPendingItem(
+ GURL("http://www.2.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
+ web::NavigationInitiationType::USER_INITIATED);
+ [session_controller() commitPendingItem];
+ web::NavigationItem* item2 = navigation_manager()->GetLastCommittedItem();
+ EXPECT_EQ(item1->GetUserAgentType(), item2->GetUserAgentType());
+ // Update |item2|'s UA type to DESKTOP and verify that it is propagated to
+ // |item3| when a native page separates the navigations.
+ item2->SetUserAgentType(web::UserAgentType::DESKTOP);
+ ASSERT_EQ(web::UserAgentType::DESKTOP, item2->GetUserAgentType());
+ navigation_manager()->AddPendingItem(
+ GURL("testnativecontent://native2"), Referrer(),
+ ui::PAGE_TRANSITION_TYPED, web::NavigationInitiationType::USER_INITIATED);
+ [session_controller() commitPendingItem];
+ web::NavigationItem* nativeItem2 =
+ navigation_manager()->GetLastCommittedItem();
+ ASSERT_EQ(web::UserAgentType::NONE, nativeItem2->GetUserAgentType());
+ navigation_manager()->AddPendingItem(
+ GURL("http://www.3.com"), Referrer(), ui::PAGE_TRANSITION_TYPED,
+ web::NavigationInitiationType::USER_INITIATED);
+ [session_controller() commitPendingItem];
+ web::NavigationItem* item3 = navigation_manager()->GetLastCommittedItem();
+ EXPECT_EQ(item2->GetUserAgentType(), item3->GetUserAgentType());
}
} // namespace web

Powered by Google App Engine
This is Rietveld 408576698