OLD | NEW |
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 6722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6733 class WebFrameSwapTest : public WebFrameTest { | 6733 class WebFrameSwapTest : public WebFrameTest { |
6734 protected: | 6734 protected: |
6735 WebFrameSwapTest() | 6735 WebFrameSwapTest() |
6736 { | 6736 { |
6737 registerMockedHttpURLLoad("frame-a-b-c.html"); | 6737 registerMockedHttpURLLoad("frame-a-b-c.html"); |
6738 registerMockedHttpURLLoad("subframe-a.html"); | 6738 registerMockedHttpURLLoad("subframe-a.html"); |
6739 registerMockedHttpURLLoad("subframe-b.html"); | 6739 registerMockedHttpURLLoad("subframe-b.html"); |
6740 registerMockedHttpURLLoad("subframe-c.html"); | 6740 registerMockedHttpURLLoad("subframe-c.html"); |
6741 registerMockedHttpURLLoad("subframe-hello.html"); | 6741 registerMockedHttpURLLoad("subframe-hello.html"); |
6742 | 6742 |
6743 m_webViewHelper.initializeAndLoad(m_baseURL + "frame-a-b-c.html"); | 6743 m_webViewHelper.initializeAndLoad(m_baseURL + "frame-a-b-c.html", true); |
6744 } | 6744 } |
6745 | 6745 |
6746 void reset() { m_webViewHelper.reset(); } | 6746 void reset() { m_webViewHelper.reset(); } |
6747 WebFrame* mainFrame() const { return m_webViewHelper.webView()->mainFrame();
} | 6747 WebFrame* mainFrame() const { return m_webViewHelper.webView()->mainFrame();
} |
6748 | 6748 |
6749 private: | 6749 private: |
6750 FrameTestHelpers::WebViewHelper m_webViewHelper; | 6750 FrameTestHelpers::WebViewHelper m_webViewHelper; |
6751 }; | 6751 }; |
6752 | 6752 |
6753 TEST_F(WebFrameSwapTest, SwapMainFrame) | 6753 TEST_F(WebFrameSwapTest, SwapMainFrame) |
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6953 localFrame->initializeToReplaceRemoteFrame(remoteFrame); | 6953 localFrame->initializeToReplaceRemoteFrame(remoteFrame); |
6954 FrameTestHelpers::loadFrame(localFrame, m_baseURL + "subframe-hello.html"); | 6954 FrameTestHelpers::loadFrame(localFrame, m_baseURL + "subframe-hello.html"); |
6955 EXPECT_EQ(WebStandardCommit, client.historyCommitType()); | 6955 EXPECT_EQ(WebStandardCommit, client.historyCommitType()); |
6956 | 6956 |
6957 // Manually reset to break WebViewHelper's dependency on the stack allocated | 6957 // Manually reset to break WebViewHelper's dependency on the stack allocated |
6958 // TestWebFrameClient. | 6958 // TestWebFrameClient. |
6959 reset(); | 6959 reset(); |
6960 remoteFrame->close(); | 6960 remoteFrame->close(); |
6961 } | 6961 } |
6962 | 6962 |
| 6963 class RemoteNavigationClient : public FrameTestHelpers::TestWebRemoteFrameClient
{ |
| 6964 public: |
| 6965 void navigate(const WebURLRequest& request, bool shouldReplaceCurrentEntry)
override |
| 6966 { |
| 6967 m_lastRequest = request; |
| 6968 } |
| 6969 |
| 6970 const WebURLRequest& lastRequest() const { return m_lastRequest; } |
| 6971 |
| 6972 private: |
| 6973 WebURLRequest m_lastRequest; |
| 6974 }; |
| 6975 |
| 6976 TEST_F(WebFrameSwapTest, NavigateRemoteFrameViaLocation) |
| 6977 { |
| 6978 RemoteNavigationClient client; |
| 6979 WebRemoteFrame* remoteFrame = WebRemoteFrame::create(&client); |
| 6980 WebFrame* targetFrame = mainFrame()->firstChild(); |
| 6981 ASSERT_TRUE(targetFrame); |
| 6982 targetFrame->swap(remoteFrame); |
| 6983 ASSERT_TRUE(mainFrame()->firstChild()); |
| 6984 ASSERT_EQ(mainFrame()->firstChild(), remoteFrame); |
| 6985 |
| 6986 remoteFrame->setReplicatedOrigin(WebSecurityOrigin::createFromString("http:/
/127.0.0.1")); |
| 6987 mainFrame()->executeScript(WebScriptSource( |
| 6988 "document.getElementsByTagName('iframe')[0].contentWindow.location = 'da
ta:text/html,hi'")); |
| 6989 ASSERT_FALSE(client.lastRequest().isNull()); |
| 6990 EXPECT_EQ(WebURL(toKURL("data:text/html,hi")), client.lastRequest().url()); |
| 6991 |
| 6992 // Manually reset to break WebViewHelper's dependency on the stack allocated |
| 6993 // TestWebFrameClient. |
| 6994 reset(); |
| 6995 remoteFrame->close(); |
| 6996 } |
| 6997 |
6963 class MockDocumentThreadableLoaderClient : public DocumentThreadableLoaderClient
{ | 6998 class MockDocumentThreadableLoaderClient : public DocumentThreadableLoaderClient
{ |
6964 public: | 6999 public: |
6965 MockDocumentThreadableLoaderClient() : m_failed(false) { } | 7000 MockDocumentThreadableLoaderClient() : m_failed(false) { } |
6966 virtual void didFail(const ResourceError&) override { m_failed = true;} | 7001 virtual void didFail(const ResourceError&) override { m_failed = true;} |
6967 | 7002 |
6968 void reset() { m_failed = false; } | 7003 void reset() { m_failed = false; } |
6969 bool failed() { return m_failed; } | 7004 bool failed() { return m_failed; } |
6970 | 7005 |
6971 bool m_failed; | 7006 bool m_failed; |
6972 }; | 7007 }; |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7064 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); | 7099 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); |
7065 | 7100 |
7066 // Neither should a page reload. | 7101 // Neither should a page reload. |
7067 localFrame->reload(); | 7102 localFrame->reload(); |
7068 EXPECT_EQ(4u, frameClient.provisionalLoadCount()); | 7103 EXPECT_EQ(4u, frameClient.provisionalLoadCount()); |
7069 EXPECT_FALSE(frameClient.wasLastProvisionalLoadATransition()); | 7104 EXPECT_FALSE(frameClient.wasLastProvisionalLoadATransition()); |
7070 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); | 7105 EXPECT_EQ(1u, frameClient.navigationalDataReceivedCount()); |
7071 } | 7106 } |
7072 | 7107 |
7073 } // namespace | 7108 } // namespace |
OLD | NEW |