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

Side by Side Diff: content/browser/frame_host/navigation_controller_impl_browsertest.cc

Issue 2772983003: Prevent tests using data URLs from being broken by data URL deprecation (Closed)
Patch Set: nasko comments Created 3 years, 8 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
« no previous file with comments | « components/subresource_filter/content/browser/content_subresource_filter_driver_factory_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "content/browser/frame_host/navigation_controller_impl.h" 5 #include "content/browser/frame_host/navigation_controller_impl.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <utility> 9 #include <utility>
10 #include <vector> 10 #include <vector>
(...skipping 489 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 500
501 } // namespace 501 } // namespace
502 502
503 // When loading a new page to replace an old page in the history list, make sure 503 // When loading a new page to replace an old page in the history list, make sure
504 // that the browser and renderer agree, and that both get it right. 504 // that the browser and renderer agree, and that both get it right.
505 IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, 505 IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
506 CorrectLengthWithCurrentItemReplacement) { 506 CorrectLengthWithCurrentItemReplacement) {
507 NavigationController& controller = 507 NavigationController& controller =
508 shell()->web_contents()->GetController(); 508 shell()->web_contents()->GetController();
509 509
510 EXPECT_TRUE(NavigateToURL(shell(), GURL("data:text/html,page1"))); 510 EXPECT_TRUE(NavigateToURL(
511 shell(), embedded_test_server()->GetURL("/simple_page.html")));
511 EXPECT_EQ(1, controller.GetEntryCount()); 512 EXPECT_EQ(1, controller.GetEntryCount());
512 EXPECT_EQ(1, RendererHistoryLength(shell())); 513 EXPECT_EQ(1, RendererHistoryLength(shell()));
513 514
514 EXPECT_TRUE(RendererLocationReplace(shell(), GURL("data:text/html,page1a"))); 515 EXPECT_TRUE(RendererLocationReplace(
516 shell(), embedded_test_server()->GetURL("/title1.html")));
515 EXPECT_EQ(1, controller.GetEntryCount()); 517 EXPECT_EQ(1, controller.GetEntryCount());
516 EXPECT_EQ(1, RendererHistoryLength(shell())); 518 EXPECT_EQ(1, RendererHistoryLength(shell()));
517 519
518 // Now create two more entries and go back, to test replacing an entry without 520 // Now create two more entries and go back, to test replacing an entry without
519 // pruning the forward history. 521 // pruning the forward history.
520 EXPECT_TRUE(NavigateToURL(shell(), GURL("data:text/html,page2"))); 522 EXPECT_TRUE(
523 NavigateToURL(shell(), embedded_test_server()->GetURL("/title2.html")));
521 EXPECT_EQ(2, controller.GetEntryCount()); 524 EXPECT_EQ(2, controller.GetEntryCount());
522 EXPECT_EQ(2, RendererHistoryLength(shell())); 525 EXPECT_EQ(2, RendererHistoryLength(shell()));
523 526
524 EXPECT_TRUE(NavigateToURL(shell(), GURL("data:text/html,page3"))); 527 EXPECT_TRUE(
528 NavigateToURL(shell(), embedded_test_server()->GetURL("/title3.html")));
525 EXPECT_EQ(3, controller.GetEntryCount()); 529 EXPECT_EQ(3, controller.GetEntryCount());
526 EXPECT_EQ(3, RendererHistoryLength(shell())); 530 EXPECT_EQ(3, RendererHistoryLength(shell()));
527 531
528 controller.GoBack(); 532 controller.GoBack();
529 EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); 533 EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
530 controller.GoBack(); 534 controller.GoBack();
531 EXPECT_TRUE(WaitForLoadStop(shell()->web_contents())); 535 EXPECT_TRUE(WaitForLoadStop(shell()->web_contents()));
532 EXPECT_TRUE(controller.CanGoForward()); 536 EXPECT_TRUE(controller.CanGoForward());
533 537
534 EXPECT_TRUE(RendererLocationReplace(shell(), GURL("data:text/html,page1b"))); 538 EXPECT_TRUE(RendererLocationReplace(
539 shell(), embedded_test_server()->GetURL("/simple_page.html?page1b")));
535 EXPECT_EQ(3, controller.GetEntryCount()); 540 EXPECT_EQ(3, controller.GetEntryCount());
536 EXPECT_EQ(3, RendererHistoryLength(shell())); 541 EXPECT_EQ(3, RendererHistoryLength(shell()));
537 EXPECT_TRUE(controller.CanGoForward()); 542 EXPECT_TRUE(controller.CanGoForward());
538 543
539 // Note that there's no way to access the renderer's notion of the history 544 // Note that there's no way to access the renderer's notion of the history
540 // offset via JavaScript. Checking just the history length, though, is enough; 545 // offset via JavaScript. Checking just the history length, though, is enough;
541 // if the replacement failed, there would be a new history entry and thus an 546 // if the replacement failed, there would be a new history entry and thus an
542 // incorrect length. 547 // incorrect length.
543 } 548 }
544 549
(...skipping 5726 matching lines...) Expand 10 before | Expand all | Expand 10 after
6271 EXPECT_THAT(headers, 6276 EXPECT_THAT(headers,
6272 ::testing::ContainsRegex( 6277 ::testing::ContainsRegex(
6273 "Referer: http://a.com:.*/form_that_posts_cross_site.html")); 6278 "Referer: http://a.com:.*/form_that_posts_cross_site.html"));
6274 } 6279 }
6275 6280
6276 // Check that the favicon is not cleared for navigating in-page. 6281 // Check that the favicon is not cleared for navigating in-page.
6277 IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest, 6282 IN_PROC_BROWSER_TEST_F(NavigationControllerBrowserTest,
6278 InPageNavigationDoesNotClearFavicon) { 6283 InPageNavigationDoesNotClearFavicon) {
6279 // Load a page and fake a favicon for it. 6284 // Load a page and fake a favicon for it.
6280 NavigationController& controller = shell()->web_contents()->GetController(); 6285 NavigationController& controller = shell()->web_contents()->GetController();
6281 ASSERT_TRUE(NavigateToURL(shell(), GURL("data:text/html,page1"))); 6286 ASSERT_TRUE(NavigateToURL(
6287 shell(), embedded_test_server()->GetURL("/simple_page.html")));
6282 content::NavigationEntry* entry = controller.GetLastCommittedEntry(); 6288 content::NavigationEntry* entry = controller.GetLastCommittedEntry();
6283 ASSERT_TRUE(entry); 6289 ASSERT_TRUE(entry);
6284 content::FaviconStatus& favicon_status = entry->GetFavicon(); 6290 content::FaviconStatus& favicon_status = entry->GetFavicon();
6285 favicon_status.valid = true; 6291 favicon_status.valid = true;
6286 6292
6287 ASSERT_TRUE(RendererLocationReplace(shell(), GURL("data:text/html,page1#"))); 6293 ASSERT_TRUE(RendererLocationReplace(
6294 shell(), embedded_test_server()->GetURL(
6295 "/simple_page.html#same-document-navigation")));
6288 entry = controller.GetLastCommittedEntry(); 6296 entry = controller.GetLastCommittedEntry();
6289 content::FaviconStatus& favicon_status2 = entry->GetFavicon(); 6297 content::FaviconStatus& favicon_status2 = entry->GetFavicon();
6290 EXPECT_TRUE(favicon_status2.valid); 6298 EXPECT_TRUE(favicon_status2.valid);
6291 6299
6292 ASSERT_TRUE(RendererLocationReplace(shell(), GURL("data:text/html,page2"))); 6300 ASSERT_TRUE(RendererLocationReplace(
6301 shell(),
6302 embedded_test_server()->GetURL("/simple_page.html?new-navigation")));
6293 entry = controller.GetLastCommittedEntry(); 6303 entry = controller.GetLastCommittedEntry();
6294 content::FaviconStatus& favicon_status3 = entry->GetFavicon(); 6304 content::FaviconStatus& favicon_status3 = entry->GetFavicon();
6295 EXPECT_FALSE(favicon_status3.valid); 6305 EXPECT_FALSE(favicon_status3.valid);
6296 } 6306 }
6297 6307
6298 namespace { 6308 namespace {
6299 6309
6300 // A BrowserMessageFilter that delays the FrameHostMsg_RunJavaScriptDialog IPC 6310 // A BrowserMessageFilter that delays the FrameHostMsg_RunJavaScriptDialog IPC
6301 // message until a commit happens on a given WebContents. This allows testing a 6311 // message until a commit happens on a given WebContents. This allows testing a
6302 // race condition. 6312 // race condition.
(...skipping 506 matching lines...) Expand 10 before | Expand all | Expand 10 after
6809 // For non-PlzNavigate case, this happens asynchronously. 6819 // For non-PlzNavigate case, this happens asynchronously.
6810 if (!IsBrowserSideNavigationEnabled()) 6820 if (!IsBrowserSideNavigationEnabled())
6811 same_tab_observer.Wait(); 6821 same_tab_observer.Wait();
6812 6822
6813 const NavigationController& controller = 6823 const NavigationController& controller =
6814 shell()->web_contents()->GetController(); 6824 shell()->web_contents()->GetController();
6815 ASSERT_EQ(controller.GetPendingEntry(), nullptr); 6825 ASSERT_EQ(controller.GetPendingEntry(), nullptr);
6816 } 6826 }
6817 6827
6818 } // namespace content 6828 } // namespace content
OLDNEW
« no previous file with comments | « components/subresource_filter/content/browser/content_subresource_filter_driver_factory_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698