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

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

Issue 1467123003: Create base class for common functionality of Web{Local,Remote}Frame (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments Created 5 years 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
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 6966 matching lines...) Expand 10 before | Expand all | Expand 10 after
6977 // FIXME: Refactor some of this logic into WebViewHelper to make it easier t o 6977 // FIXME: Refactor some of this logic into WebViewHelper to make it easier t o
6978 // write tests with a top-level remote frame. 6978 // write tests with a top-level remote frame.
6979 FrameTestHelpers::TestWebViewClient viewClient; 6979 FrameTestHelpers::TestWebViewClient viewClient;
6980 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; 6980 FrameTestHelpers::TestWebRemoteFrameClient remoteClient;
6981 WebView* view = WebView::create(&viewClient); 6981 WebView* view = WebView::create(&viewClient);
6982 view->setMainFrame(remoteClient.frame()); 6982 view->setMainFrame(remoteClient.frame());
6983 FrameTestHelpers::TestWebFrameClient childFrameClient; 6983 FrameTestHelpers::TestWebFrameClient childFrameClient;
6984 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient , nullptr, WebFrameOwnerProperties()); 6984 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient , nullptr, WebFrameOwnerProperties());
6985 6985
6986 // Purposely keep the LocalFrame alive so it's the last thing to be destroye d. 6986 // Purposely keep the LocalFrame alive so it's the last thing to be destroye d.
6987 RefPtrWillBePersistent<Frame> childCoreFrame = toCoreFrame(childFrame); 6987 RefPtrWillBePersistent<Frame> childCoreFrame = childFrame->toImplBase()->fra me();
6988 view->close(); 6988 view->close();
6989 childCoreFrame.clear(); 6989 childCoreFrame.clear();
6990 } 6990 }
6991 6991
6992 class WebFrameSwapTest : public WebFrameTest { 6992 class WebFrameSwapTest : public WebFrameTest {
6993 protected: 6993 protected:
6994 WebFrameSwapTest() 6994 WebFrameSwapTest()
6995 { 6995 {
6996 registerMockedHttpURLLoad("frame-a-b-c.html"); 6996 registerMockedHttpURLLoad("frame-a-b-c.html");
6997 registerMockedHttpURLLoad("subframe-a.html"); 6997 registerMockedHttpURLLoad("subframe-a.html");
(...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after
7519 7519
7520 KURL destination = toKURL("data:text/html:destination"); 7520 KURL destination = toKURL("data:text/html:destination");
7521 mainWindow->open(destination.string(), "frame1", "", mainWindow, mainWindow) ; 7521 mainWindow->open(destination.string(), "frame1", "", mainWindow, mainWindow) ;
7522 ASSERT_FALSE(remoteClient.lastRequest().isNull()); 7522 ASSERT_FALSE(remoteClient.lastRequest().isNull());
7523 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); 7523 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination));
7524 7524
7525 // Pointing a named frame to an empty URL should just return a reference to 7525 // Pointing a named frame to an empty URL should just return a reference to
7526 // the frame's window without navigating it. 7526 // the frame's window without navigating it.
7527 RefPtrWillBeRawPtr<DOMWindow> result = mainWindow->open("", "frame1", "", ma inWindow, mainWindow); 7527 RefPtrWillBeRawPtr<DOMWindow> result = mainWindow->open("", "frame1", "", ma inWindow, mainWindow);
7528 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination)); 7528 EXPECT_EQ(remoteClient.lastRequest().url(), WebURL(destination));
7529 EXPECT_EQ(result, toCoreFrame(remoteFrame)->domWindow()); 7529 EXPECT_EQ(result, remoteFrame->toImplBase()->frame()->domWindow());
7530 7530
7531 reset(); 7531 reset();
7532 } 7532 }
7533 7533
7534 class RemoteWindowCloseClient : public FrameTestHelpers::TestWebViewClient { 7534 class RemoteWindowCloseClient : public FrameTestHelpers::TestWebViewClient {
7535 public: 7535 public:
7536 RemoteWindowCloseClient() 7536 RemoteWindowCloseClient()
7537 : m_closed(false) 7537 : m_closed(false)
7538 { 7538 {
7539 } 7539 }
(...skipping 10 matching lines...) Expand all
7550 }; 7550 };
7551 7551
7552 TEST_F(WebFrameTest, WindowOpenRemoteClose) 7552 TEST_F(WebFrameTest, WindowOpenRemoteClose)
7553 { 7553 {
7554 FrameTestHelpers::WebViewHelper mainWebView; 7554 FrameTestHelpers::WebViewHelper mainWebView;
7555 mainWebView.initialize(true); 7555 mainWebView.initialize(true);
7556 7556
7557 // Create a remote window that will be closed later in the test. 7557 // Create a remote window that will be closed later in the test.
7558 RemoteWindowCloseClient viewClient; 7558 RemoteWindowCloseClient viewClient;
7559 FrameTestHelpers::TestWebRemoteFrameClient frameClient; 7559 FrameTestHelpers::TestWebRemoteFrameClient frameClient;
7560 WebRemoteFrame* webRemoteFrame = frameClient.frame(); 7560 WebRemoteFrameImpl* webRemoteFrame = frameClient.frame();
7561 7561
7562 WebView* view = WebView::create(&viewClient); 7562 WebView* view = WebView::create(&viewClient);
7563 view->setMainFrame(webRemoteFrame); 7563 view->setMainFrame(webRemoteFrame);
7564 view->mainFrame()->setOpener(mainWebView.webView()->mainFrame()); 7564 view->mainFrame()->setOpener(mainWebView.webView()->mainFrame());
7565 webRemoteFrame->setReplicatedOrigin(WebSecurityOrigin::createFromString("htt p://127.0.0.1")); 7565 webRemoteFrame->setReplicatedOrigin(WebSecurityOrigin::createFromString("htt p://127.0.0.1"));
7566 7566
7567 LocalFrame* localFrame = toLocalFrame(toCoreFrame(mainWebView.webView()->mai nFrame())); 7567 LocalFrame* localFrame = toLocalFrame(mainWebView.webView()->mainFrame()->to ImplBase()->frame());
7568 RemoteFrame* remoteFrame = toRemoteFrame(toCoreFrame(frameClient.frame())); 7568 RemoteFrame* remoteFrame = webRemoteFrame->frame();
7569 7569
7570 // Attempt to close the window, which should fail as it isn't opened 7570 // Attempt to close the window, which should fail as it isn't opened
7571 // by a script. 7571 // by a script.
7572 remoteFrame->domWindow()->close(localFrame->document()); 7572 remoteFrame->domWindow()->close(localFrame->document());
7573 EXPECT_FALSE(viewClient.closed()); 7573 EXPECT_FALSE(viewClient.closed());
7574 7574
7575 // Marking it as opened by a script should now allow it to be closed. 7575 // Marking it as opened by a script should now allow it to be closed.
7576 remoteFrame->page()->setOpenedByDOM(); 7576 remoteFrame->page()->setOpenedByDOM();
7577 remoteFrame->domWindow()->close(localFrame->document()); 7577 remoteFrame->domWindow()->close(localFrame->document());
7578 EXPECT_TRUE(viewClient.closed()); 7578 EXPECT_TRUE(viewClient.closed());
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
7648 private: 7648 private:
7649 WebHistoryCommitType m_historyCommitType; 7649 WebHistoryCommitType m_historyCommitType;
7650 }; 7650 };
7651 7651
7652 TEST_P(ParameterizedWebFrameTest, RemoteFrameInitialCommitType) 7652 TEST_P(ParameterizedWebFrameTest, RemoteFrameInitialCommitType)
7653 { 7653 {
7654 FrameTestHelpers::TestWebViewClient viewClient; 7654 FrameTestHelpers::TestWebViewClient viewClient;
7655 FrameTestHelpers::TestWebRemoteFrameClient remoteClient; 7655 FrameTestHelpers::TestWebRemoteFrameClient remoteClient;
7656 WebView* view = WebView::create(&viewClient); 7656 WebView* view = WebView::create(&viewClient);
7657 view->setMainFrame(remoteClient.frame()); 7657 view->setMainFrame(remoteClient.frame());
7658 toRemoteFrame(toCoreFrame(view->mainFrame()))->securityContext()->setReplica tedOrigin(SecurityOrigin::create(toKURL(m_baseURL))); 7658 remoteClient.frame()->setReplicatedOrigin(WebSecurityOrigin::createFromStrin g(WebString::fromUTF8(m_baseURL)));
7659 7659
7660 // If an iframe has a remote main frame, ensure the inital commit is correct ly identified as WebInitialCommitInChildFrame. 7660 // If an iframe has a remote main frame, ensure the inital commit is correct ly identified as WebInitialCommitInChildFrame.
7661 CommitTypeWebFrameClient childFrameClient; 7661 CommitTypeWebFrameClient childFrameClient;
7662 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient , nullptr, WebFrameOwnerProperties()); 7662 WebLocalFrame* childFrame = view->mainFrame()->toWebRemoteFrame()->createLoc alChild(WebTreeScopeType::Document, "", WebSandboxFlags::None, &childFrameClient , nullptr, WebFrameOwnerProperties());
7663 registerMockedHttpURLLoad("foo.html"); 7663 registerMockedHttpURLLoad("foo.html");
7664 FrameTestHelpers::loadFrame(childFrame, m_baseURL + "foo.html"); 7664 FrameTestHelpers::loadFrame(childFrame, m_baseURL + "foo.html");
7665 EXPECT_EQ(WebInitialCommitInChildFrame, childFrameClient.historyCommitType() ); 7665 EXPECT_EQ(WebInitialCommitInChildFrame, childFrameClient.historyCommitType() );
7666 view->close(); 7666 view->close();
7667 } 7667 }
7668 7668
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
8322 8322
8323 TEST_F(WebFrameTest, CallbackOrdering) 8323 TEST_F(WebFrameTest, CallbackOrdering)
8324 { 8324 {
8325 registerMockedHttpURLLoad("foo.html"); 8325 registerMockedHttpURLLoad("foo.html");
8326 FrameTestHelpers::WebViewHelper webViewHelper; 8326 FrameTestHelpers::WebViewHelper webViewHelper;
8327 CallbackOrderingWebFrameClient client; 8327 CallbackOrderingWebFrameClient client;
8328 webViewHelper.initializeAndLoad(m_baseURL + "foo.html", true, &client); 8328 webViewHelper.initializeAndLoad(m_baseURL + "foo.html", true, &client);
8329 } 8329 }
8330 8330
8331 } // namespace blink 8331 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/tests/FrameTestHelpers.cpp ('k') | third_party/WebKit/Source/web/web.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698