| Index: chrome_frame/external_tab_test.cc
|
| diff --git a/chrome_frame/external_tab_test.cc b/chrome_frame/external_tab_test.cc
|
| deleted file mode 100644
|
| index 5017eb2197fd8822791027cf12ec8889cd37f8f9..0000000000000000000000000000000000000000
|
| --- a/chrome_frame/external_tab_test.cc
|
| +++ /dev/null
|
| @@ -1,186 +0,0 @@
|
| -// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome_frame/external_tab.h"
|
| -
|
| -// #include "base/synchronization/waitable_event.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/bind_helpers.h"
|
| -#include "base/location.h"
|
| -#include "base/threading/thread.h"
|
| -#include "chrome/common/automation_messages.h"
|
| -#include "chrome_frame/navigation_constraints.h"
|
| -#include "chrome_frame/test/chrome_frame_test_utils.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gmock_mutant.h"
|
| -
|
| -using testing::StrictMock;
|
| -using testing::_;
|
| -using testing::Invoke;
|
| -using testing::InvokeWithoutArgs;
|
| -using testing::CreateFunctor;
|
| -using testing::Return;
|
| -using testing::DoAll;
|
| -using testing::Field;
|
| -using chrome_frame_test::TimedMsgLoop;
|
| -
|
| -struct MockUIDelegate : public UIDelegate {
|
| - MOCK_METHOD2(OnNavigationStateChanged, void(int flags,
|
| - const NavigationInfo& nav_info));
|
| - MOCK_METHOD1(OnUpdateTargetUrl, void(const std::wstring& new_target_url));
|
| - MOCK_METHOD1(OnLoad, void(const GURL& url));
|
| - MOCK_METHOD1(OnMoveWindow, void(const gfx::Rect& pos));
|
| - MOCK_METHOD3(OnMessageFromChromeFrame, void(const std::string& message,
|
| - const std::string& origin, const std::string& target));
|
| - MOCK_METHOD3(OnHandleContextMenu, void(const ContextMenuModel& menu_model,
|
| - int align_flags, const MiniContextMenuParams& params));
|
| - MOCK_METHOD1(OnHandleAccelerator, void(const MSG& accel_message));
|
| - MOCK_METHOD1(OnTabbedOut, void(bool reverse));
|
| - MOCK_METHOD1(OnGoToHistoryOffset, void(int offset));
|
| - MOCK_METHOD3(OnOpenURL, void(const GURL& url_to_open, const GURL& referrer,
|
| - int open_disposition));
|
| -};
|
| -
|
| -struct MockProxy : public ChromeProxy {
|
| - MOCK_METHOD1(RemoveBrowsingData, void(int remove_mask));
|
| - MOCK_METHOD1(SetProxyConfig, void(const std::string& json_encoded_settings));
|
| -
|
| - MOCK_METHOD2(CreateTab, void(ChromeProxyDelegate* delegate,
|
| - const ExternalTabSettings& settings));
|
| - MOCK_METHOD3(ConnectTab, void(ChromeProxyDelegate* delegate, HWND hwnd,
|
| - uint64 cookie));
|
| - MOCK_METHOD1(BlockTab, void(uint64 cookie));
|
| -
|
| - MOCK_METHOD4(Tab_PostMessage, void(int tab, const std::string& message,
|
| - const std::string& origin, const std::string& target));
|
| - MOCK_METHOD1(Tab_Reload, void(int tab));
|
| - MOCK_METHOD1(Tab_Stop, void(int tab));
|
| - MOCK_METHOD1(Tab_SaveAs, void(int tab));
|
| - MOCK_METHOD1(Tab_Print, void(int tab));
|
| - MOCK_METHOD1(Tab_Cut, void(int tab));
|
| - MOCK_METHOD1(Tab_Copy, void(int tab));
|
| - MOCK_METHOD1(Tab_Paste, void(int tab));
|
| - MOCK_METHOD1(Tab_SelectAll, void(int tab));
|
| - MOCK_METHOD5(Tab_Find, void(int tab, const string16& search_string,
|
| - FindInPageDirection forward, FindInPageCase match_case, bool find_next));
|
| - MOCK_METHOD2(Tab_MenuCommand, void(int tab, int selected_command));
|
| -
|
| - MOCK_METHOD2(Tab_Zoom, void(int tab, content::PageZoom zoom_level));
|
| - MOCK_METHOD2(Tab_FontSize, void(int tab, AutomationPageFontSize font_size));
|
| - MOCK_METHOD3(Tab_SetInitialFocus, void(int tab, bool reverse,
|
| - bool restore_focus_to_view));
|
| - MOCK_METHOD1(Tab_SetParentWindow, void(int tab));
|
| - MOCK_METHOD1(Tab_Resize, void(int tab));
|
| - MOCK_METHOD2(Tab_ProcessAccelerator, void(int tab, const MSG& msg));
|
| -
|
| - // Misc.
|
| - MOCK_METHOD1(Tab_OnHostMoved, void(int tab));
|
| - MOCK_METHOD1(Tab_RunUnloadHandlers, void(int tab));
|
| - MOCK_METHOD3(Tab_Navigate, void(int tab, const GURL& url,
|
| - const GURL& referrer));
|
| - MOCK_METHOD2(Tab_OverrideEncoding, void(int tab, const char* encoding));
|
| -
|
| - MOCK_METHOD1(Init, void(const ProxyParams& params));
|
| - MOCK_METHOD1(AddDelegate, int(ChromeProxyDelegate* delegate));
|
| - MOCK_METHOD1(RemoveDelegate, int(ChromeProxyDelegate* delegate));
|
| -};
|
| -
|
| -struct MockFactory : public ChromeProxyFactory {
|
| - MOCK_METHOD0(CreateProxy, ChromeProxy*());
|
| -};
|
| -
|
| -
|
| -// This class just calls methods of ChromeProxyDelegate but in background thread
|
| -struct AsyncEventCreator {
|
| - public:
|
| - explicit AsyncEventCreator(ChromeProxyDelegate* delegate)
|
| - : delegate_(delegate), ipc_thread_("ipc") {
|
| - base::Thread::Options options(MessageLoop::TYPE_IO, 0);
|
| - ipc_thread_.StartWithOptions(options);
|
| - ipc_loop_ = ipc_thread_.message_loop();
|
| - }
|
| -
|
| - void Fire_Connected(ChromeProxy* proxy, base::TimeDelta delay) {
|
| - ipc_loop_->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeProxyDelegate::Connected, base::Unretained(delegate_),
|
| - proxy),
|
| - delay.InMilliseconds());
|
| - }
|
| -
|
| - void Fire_PeerLost(ChromeProxy* proxy,
|
| - ChromeProxyDelegate::DisconnectReason reason, base::TimeDelta delay) {
|
| - ipc_loop_->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeProxyDelegate::PeerLost, base::Unretained(delegate_),
|
| - proxy, reason),
|
| - delay.InMilliseconds());
|
| - }
|
| -
|
| - void Fire_Disconnected(base::TimeDelta delay) {
|
| - ipc_loop_->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeProxyDelegate::Disconnected,
|
| - base::Unretained(delegate_)),
|
| - delay.InMilliseconds());
|
| - }
|
| -
|
| - void Fire_CompletedCreateTab(bool success, HWND chrome_wnd, HWND tab_window,
|
| - int tab_handle, int session_id,
|
| - base::TimeDelta delay) {
|
| - ipc_loop_->PostDelayedTask(
|
| - FROM_HERE,
|
| - base::Bind(&ChromeProxyDelegate::Completed_CreateTab,
|
| - base::Unretained(delegate_), success, chrome_wnd, tab_window,
|
| - tab_handle, session_id),
|
| - delay.InMilliseconds());
|
| - }
|
| -
|
| - private:
|
| - ChromeProxyDelegate* delegate_;
|
| - base::Thread ipc_thread_;
|
| - MessageLoop* ipc_loop_;
|
| -};
|
| -
|
| -// We may want the same test with 'real' proxy and mock 'proxy traits'.
|
| -TEST(ExternalTabProxy, CancelledCreateTab) {
|
| - MockUIDelegate ui_delegate;
|
| - StrictMock<MockFactory> factory;
|
| - scoped_ptr<ExternalTabProxy> tab(new ExternalTabProxy());
|
| - AsyncEventCreator async_events(tab.get());
|
| - StrictMock<MockProxy>* proxy = new StrictMock<MockProxy>();
|
| - TimedMsgLoop loop;
|
| - tab->set_proxy_factory(&factory);
|
| -
|
| - EXPECT_CALL(factory, CreateProxy()).WillOnce(Return(proxy));
|
| - EXPECT_CALL(*proxy, Init(_));
|
| - EXPECT_CALL(*proxy, AddDelegate(tab.get())).WillOnce(DoAll(InvokeWithoutArgs(
|
| - CreateFunctor(&async_events, &AsyncEventCreator::Fire_Connected,
|
| - proxy, base::TimeDelta::FromMilliseconds(30))),
|
| - Return(1)));
|
| -
|
| - EXPECT_CALL(*proxy, CreateTab(tab.get(), _))
|
| - .WillOnce(QUIT_LOOP(loop));
|
| -
|
| - EXPECT_CALL(*proxy, RemoveDelegate(_)).WillOnce(DoAll(
|
| - InvokeWithoutArgs(CreateFunctor(&async_events,
|
| - &AsyncEventCreator::Fire_CompletedCreateTab, false, HWND(0), HWND(0),
|
| - 0, 0, base::TimeDelta::FromMilliseconds(0))),
|
| - InvokeWithoutArgs(CreateFunctor(&async_events,
|
| - &AsyncEventCreator::Fire_Disconnected,
|
| - base::TimeDelta::FromMilliseconds(0))),
|
| - Return(0)));
|
| -
|
| - CreateTabParams tab_params;
|
| - tab_params.is_incognito = true;
|
| - tab_params.is_widget_mode = false;
|
| - tab_params.url = GURL("http://Xanadu.org");
|
| -
|
| - tab->CreateTab(tab_params, &ui_delegate);
|
| - loop.RunFor(5);
|
| - EXPECT_FALSE(loop.WasTimedOut());
|
| - tab.reset();
|
| -}
|
|
|