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

Side by Side Diff: Source/web/tests/WebFrameTest.cpp

Issue 879423003: Move Location to DOMWindow (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2010 Google Inc. All rights reserved. 2 * Copyright (C) 2010 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 6675 matching lines...) Expand 10 before | Expand all | Expand 10 after
6686 class WebFrameSwapTest : public WebFrameTest { 6686 class WebFrameSwapTest : public WebFrameTest {
6687 protected: 6687 protected:
6688 WebFrameSwapTest() 6688 WebFrameSwapTest()
6689 { 6689 {
6690 registerMockedHttpURLLoad("frame-a-b-c.html"); 6690 registerMockedHttpURLLoad("frame-a-b-c.html");
6691 registerMockedHttpURLLoad("subframe-a.html"); 6691 registerMockedHttpURLLoad("subframe-a.html");
6692 registerMockedHttpURLLoad("subframe-b.html"); 6692 registerMockedHttpURLLoad("subframe-b.html");
6693 registerMockedHttpURLLoad("subframe-c.html"); 6693 registerMockedHttpURLLoad("subframe-c.html");
6694 registerMockedHttpURLLoad("subframe-hello.html"); 6694 registerMockedHttpURLLoad("subframe-hello.html");
6695 6695
6696 m_webViewHelper.initializeAndLoad(m_baseURL + "frame-a-b-c.html"); 6696 m_webViewHelper.initializeAndLoad(m_baseURL + "frame-a-b-c.html", true);
6697 } 6697 }
6698 6698
6699 void reset() { m_webViewHelper.reset(); } 6699 void reset() { m_webViewHelper.reset(); }
6700 WebFrame* mainFrame() const { return m_webViewHelper.webView()->mainFrame(); } 6700 WebFrame* mainFrame() const { return m_webViewHelper.webView()->mainFrame(); }
6701 6701
6702 private: 6702 private:
6703 FrameTestHelpers::WebViewHelper m_webViewHelper; 6703 FrameTestHelpers::WebViewHelper m_webViewHelper;
6704 }; 6704 };
6705 6705
6706 TEST_F(WebFrameSwapTest, SwapMainFrame) 6706 TEST_F(WebFrameSwapTest, SwapMainFrame)
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
6906 localFrame->initializeToReplaceRemoteFrame(remoteFrame); 6906 localFrame->initializeToReplaceRemoteFrame(remoteFrame);
6907 FrameTestHelpers::loadFrame(localFrame, m_baseURL + "subframe-hello.html"); 6907 FrameTestHelpers::loadFrame(localFrame, m_baseURL + "subframe-hello.html");
6908 EXPECT_EQ(WebStandardCommit, client.historyCommitType()); 6908 EXPECT_EQ(WebStandardCommit, client.historyCommitType());
6909 6909
6910 // Manually reset to break WebViewHelper's dependency on the stack allocated 6910 // Manually reset to break WebViewHelper's dependency on the stack allocated
6911 // TestWebFrameClient. 6911 // TestWebFrameClient.
6912 reset(); 6912 reset();
6913 remoteFrame->close(); 6913 remoteFrame->close();
6914 } 6914 }
6915 6915
6916 class RemoteNavigationClient : public FrameTestHelpers::TestWebRemoteFrameClient {
6917 public:
6918 RemoteNavigationClient() { }
dcheng 2015/02/02 19:27:52 Nit: I think it's fine to omit the constructor in
Nate Chapin 2015/02/02 21:02:00 Done.
6919
6920 void navigate(const WebURLRequest& request, bool shouldReplaceCurrentEntry) override
6921 {
6922 m_lastRequest = request;
6923 }
6924
6925 const WebURLRequest& lastRequest() { return m_lastRequest; }
dcheng 2015/02/02 19:27:52 Nit: const.
Nate Chapin 2015/02/02 21:01:59 Done.
6926
6927 WebURLRequest m_lastRequest;
dcheng 2015/02/02 19:27:52 Nit: make this private, since we have an accessor.
Nate Chapin 2015/02/02 21:02:00 Done.
6928 };
6929
6930 TEST_F(WebFrameSwapTest, NavigateRemoteFrameViaLocation)
6931 {
6932 RemoteNavigationClient client;
6933 WebRemoteFrame* remoteFrame = WebRemoteFrame::create(&client);
6934 WebFrame* targetFrame = mainFrame()->firstChild();
6935 ASSERT_TRUE(targetFrame);
6936 targetFrame->swap(remoteFrame);
6937 ASSERT_TRUE(mainFrame()->firstChild());
6938 ASSERT_EQ(mainFrame()->firstChild(), remoteFrame);
6939
6940 remoteFrame->setReplicatedOrigin(WebSecurityOrigin::createFromString("http:/ /127.0.0.1"));
6941 mainFrame()->executeScript(WebScriptSource(
6942 "document.getElementsByTagName('iframe')[0].contentWindow.location = 'da ta:text/html,hi'"));
6943 ASSERT_FALSE(client.lastRequest().isNull());
6944 EXPECT_EQ(WebURL(toKURL("data:text/html,hi")), client.lastRequest().url());
6945
6946 // Manually reset to break WebViewHelper's dependency on the stack allocated
6947 // TestWebFrameClient.
6948 reset();
6949 remoteFrame->close();
6950 }
6951
6916 class MockDocumentThreadableLoaderClient : public DocumentThreadableLoaderClient { 6952 class MockDocumentThreadableLoaderClient : public DocumentThreadableLoaderClient {
6917 public: 6953 public:
6918 MockDocumentThreadableLoaderClient() : m_failed(false) { } 6954 MockDocumentThreadableLoaderClient() : m_failed(false) { }
6919 virtual void didFail(const ResourceError&) override { m_failed = true;} 6955 virtual void didFail(const ResourceError&) override { m_failed = true;}
6920 6956
6921 void reset() { m_failed = false; } 6957 void reset() { m_failed = false; }
6922 bool failed() { return m_failed; } 6958 bool failed() { return m_failed; }
6923 6959
6924 bool m_failed; 6960 bool m_failed;
6925 }; 6961 };
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
7017 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); 7053 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount());
7018 7054
7019 // Neither should a page reload. 7055 // Neither should a page reload.
7020 localFrame->reload(); 7056 localFrame->reload();
7021 EXPECT_EQ(4u, frameClient.provisionalLoadCount()); 7057 EXPECT_EQ(4u, frameClient.provisionalLoadCount());
7022 EXPECT_FALSE(frameClient.wasLastProvisionalLoadATransition()); 7058 EXPECT_FALSE(frameClient.wasLastProvisionalLoadATransition());
7023 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); 7059 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount());
7024 } 7060 }
7025 7061
7026 } // namespace 7062 } // namespace
OLDNEW
« Source/core/frame/DOMWindowProperty.cpp ('K') | « Source/modules/webmidi/NavigatorWebMIDI.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698