| Index: chrome_frame/test/net/fake_external_tab.h
|
| ===================================================================
|
| --- chrome_frame/test/net/fake_external_tab.h (revision 0)
|
| +++ chrome_frame/test/net/fake_external_tab.h (revision 0)
|
| @@ -0,0 +1,106 @@
|
| +// Copyright (c) 2009 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.
|
| +
|
| +#ifndef CHROME_FRAME_TEST_NET_FAKE_EXTERNAL_TAB_H_
|
| +#define CHROME_FRAME_TEST_NET_FAKE_EXTERNAL_TAB_H_
|
| +
|
| +#include <string>
|
| +
|
| +#include "base/file_path.h"
|
| +#include "base/message_loop.h"
|
| +
|
| +#include "chrome/app/scoped_ole_initializer.h"
|
| +#include "chrome/browser/browser_process_impl.h"
|
| +
|
| +#include "chrome_frame/test/test_server.h"
|
| +#include "chrome_frame/test/net/test_automation_provider.h"
|
| +#include "chrome_frame/test/net/process_singleton_subclass.h"
|
| +
|
| +#include "net/base/net_test_suite.h"
|
| +
|
| +class ProcessSingleton;
|
| +
|
| +class FakeExternalTab {
|
| + public:
|
| + FakeExternalTab();
|
| + ~FakeExternalTab();
|
| +
|
| + virtual std::wstring GetProfileName();
|
| +
|
| + virtual std::wstring GetProfilePath();
|
| + virtual void Initialize();
|
| + virtual void Shutdown();
|
| +
|
| + const FilePath& user_data() const {
|
| + return user_data_dir_;
|
| + }
|
| +
|
| + MessageLoopForUI* ui_loop() {
|
| + return &loop_;
|
| + }
|
| +
|
| + protected:
|
| + MessageLoopForUI loop_;
|
| + scoped_ptr<BrowserProcess> browser_process_;
|
| + FilePath overridden_user_dir_;
|
| + FilePath user_data_dir_;
|
| + ScopedOleInitializer ole_initializer_; // For RegisterDropTarget etc to work.
|
| + scoped_ptr<ProcessSingleton> process_singleton_;
|
| +};
|
| +
|
| +// The "master class" that spins the UI and test threads.
|
| +class CFUrlRequestUnittestRunner
|
| + : public NetTestSuite,
|
| + public ProcessSingletonSubclassDelegate,
|
| + public TestAutomationProviderDelegate {
|
| + public:
|
| + CFUrlRequestUnittestRunner(int argc, char** argv);
|
| + ~CFUrlRequestUnittestRunner();
|
| +
|
| + virtual void StartChromeFrameInHostBrowser();
|
| +
|
| + virtual void ShutDownHostBrowser();
|
| +
|
| + // Overrides to not call icu initialize
|
| + virtual void Initialize();
|
| + virtual void Shutdown();
|
| +
|
| + // ProcessSingletonSubclassDelegate.
|
| + virtual void OnConnectAutomationProviderToChannel(
|
| + const std::string& channel_id);
|
| +
|
| + // TestAutomationProviderDelegate.
|
| + virtual void OnInitialTabLoaded();
|
| +
|
| + void RunMainUIThread();
|
| +
|
| + void StartTests();
|
| +
|
| + protected:
|
| + // This is the thread that runs all the UrlRequest tests.
|
| + // Within its context, the Initialize() and Shutdown() routines above
|
| + // will be called.
|
| + static DWORD WINAPI RunAllUnittests(void* param);
|
| +
|
| + static void TakeDownBrowser(CFUrlRequestUnittestRunner* me);
|
| +
|
| + protected:
|
| + // Borrowed from TestSuite::Initialize().
|
| + void InitializeLogging();
|
| +
|
| + protected:
|
| + ScopedHandle test_thread_;
|
| + DWORD test_thread_id_;
|
| + scoped_ptr<MessageLoop> test_thread_message_loop_;
|
| +
|
| + scoped_ptr<test_server::SimpleWebServer> test_http_server_;
|
| + test_server::SimpleResponse chrome_frame_html_;
|
| +
|
| + // The fake chrome instance. This instance owns the UI message loop
|
| + // on the main thread.
|
| + FakeExternalTab fake_chrome_;
|
| + scoped_ptr<ProcessSingletonSubclass> pss_subclass_;
|
| +};
|
| +
|
| +#endif // CHROME_FRAME_TEST_NET_FAKE_EXTERNAL_TAB_H_
|
|
|