| Index: chrome/browser/intents/native_services_browsertest.cc
|
| diff --git a/chrome/browser/intents/native_services_browsertest.cc b/chrome/browser/intents/native_services_browsertest.cc
|
| deleted file mode 100644
|
| index 0daa02f68abf6ede118977e9e133b8db3e1d12b0..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/intents/native_services_browsertest.cc
|
| +++ /dev/null
|
| @@ -1,211 +0,0 @@
|
| -// Copyright (c) 2012 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 <algorithm>
|
| -#include <iterator>
|
| -#include <string>
|
| -
|
| -#include "base/command_line.h"
|
| -#include "base/file_path.h"
|
| -#include "base/path_service.h"
|
| -#include "base/string_util.h"
|
| -#include "base/utf_string_conversions.h"
|
| -#include "base/memory/scoped_ptr.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "chrome/browser/intents/intent_service_host.h"
|
| -#include "chrome/browser/intents/native_services.h"
|
| -#include "chrome/browser/intents/web_intents_util.h"
|
| -#include "chrome/browser/ui/browser.h"
|
| -#include "chrome/browser/ui/tabs/tab_strip_model.h"
|
| -#include "chrome/common/chrome_paths.h"
|
| -#include "chrome/common/chrome_switches.h"
|
| -#include "chrome/test/base/in_process_browser_test.h"
|
| -#include "chrome/test/base/ui_test_utils.h"
|
| -#include "content/public/browser/web_contents.h"
|
| -#include "content/public/browser/web_intents_dispatcher.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -#include "ui/shell_dialogs/select_file_dialog_factory.h"
|
| -#include "webkit/glue/web_intent_data.h"
|
| -#include "webkit/glue/web_intent_reply_data.h"
|
| -#include "webkit/glue/web_intent_service_data.h"
|
| -
|
| -using content::BrowserThread;
|
| -
|
| -namespace {
|
| -
|
| -const std::string kPoodlePath = "/home/poodles/skippy.png";
|
| -bool picker_success_mode = true;
|
| -const int64 kTestFileSize = 193;
|
| -
|
| -FilePath CreateTestFile() {
|
| - FilePath file;
|
| - PathService::Get(chrome::DIR_TEST_DATA, &file);
|
| - file = file.AppendASCII("web_intents").AppendASCII("test.png");
|
| - return file;
|
| -}
|
| -
|
| -class TestIntentsDispatcher : public content::WebIntentsDispatcher {
|
| - public:
|
| - explicit TestIntentsDispatcher(const webkit_glue::WebIntentData& intent)
|
| - : intent_(intent) {}
|
| -
|
| - virtual const webkit_glue::WebIntentData& GetIntent() OVERRIDE {
|
| - return intent_;
|
| - }
|
| -
|
| - virtual void DispatchIntent(content::WebContents* web_contents) OVERRIDE {}
|
| - virtual void ResetDispatch() OVERRIDE {}
|
| -
|
| - virtual void SendReply(const webkit_glue::WebIntentReply& reply) OVERRIDE {
|
| - reply_.reset(new webkit_glue::WebIntentReply(reply));
|
| - }
|
| -
|
| - virtual void RegisterReplyNotification(
|
| - const base::Callback<void(webkit_glue::WebIntentReplyType)>&) OVERRIDE {
|
| - }
|
| -
|
| - webkit_glue::WebIntentData intent_;
|
| -
|
| - scoped_ptr<webkit_glue::WebIntentReply> reply_;
|
| -};
|
| -
|
| -// Stub SelectFileDialog designed for testing.
|
| -class TestSelectFileDialog : public ui::SelectFileDialog {
|
| - public:
|
| - // Main factory method which returns correct type.
|
| - static ui::SelectFileDialog* Create(
|
| - Listener* listener,
|
| - ui::SelectFilePolicy* policy) {
|
| - return new TestSelectFileDialog(listener, policy);
|
| - }
|
| -
|
| - // SelectFileDialog implementation.
|
| - virtual bool IsRunning(gfx::NativeWindow parent_window) const OVERRIDE {
|
| - return false;
|
| - }
|
| - virtual void ListenerDestroyed() OVERRIDE {}
|
| - virtual bool HasMultipleFileTypeChoicesImpl() OVERRIDE {
|
| - return false;
|
| - }
|
| -
|
| - protected:
|
| - TestSelectFileDialog(
|
| - Listener* listener, ui::SelectFilePolicy* policy)
|
| - : ui::SelectFileDialog(listener, policy),
|
| - listener_(listener) {
|
| - test_file_ = CreateTestFile();
|
| - }
|
| - virtual ~TestSelectFileDialog() {}
|
| -
|
| - // SelectFileDialog implementation.
|
| - // |params| is user data we pass back via the Listener interface.
|
| - virtual void SelectFileImpl(
|
| - Type type,
|
| - const string16& title,
|
| - const FilePath& default_path,
|
| - const FileTypeInfo* file_types,
|
| - int file_type_index,
|
| - const FilePath::StringType& default_extension,
|
| - gfx::NativeWindow owning_window,
|
| - void* params) OVERRIDE {
|
| - if (picker_success_mode)
|
| - listener_->FileSelected(test_file_, kTestFileSize, NULL);
|
| - else
|
| - listener_->FileSelectionCanceled(NULL);
|
| - }
|
| -
|
| - private:
|
| - // Weak pointer to handler for dialog events.
|
| - Listener* listener_;
|
| - FilePath test_file_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(TestSelectFileDialog);
|
| -};
|
| -
|
| -class TestSelectFileDialogFactory : public ui::SelectFileDialogFactory {
|
| - public:
|
| - virtual ui::SelectFileDialog* Create(
|
| - ui::SelectFileDialog::Listener* listener,
|
| - ui::SelectFilePolicy* policy) {
|
| - return TestSelectFileDialog::Create(listener, policy);
|
| - }
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -class NativeServicesBrowserTest : public InProcessBrowserTest {
|
| - protected:
|
| - NativeServicesBrowserTest() {}
|
| -
|
| - virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
|
| - // We start the test server now instead of in
|
| - // SetUpInProcessBrowserTestFixture so that we can get its port number.
|
| - ASSERT_TRUE(test_server()->Start());
|
| -
|
| - command_line->AppendSwitch(switches::kWebIntentsNativeServicesEnabled);
|
| - test_file_ = CreateTestFile();
|
| - }
|
| -
|
| - virtual void SetUpOnMainThread() OVERRIDE {
|
| - factory_.reset(new TestSelectFileDialogFactory());
|
| - ui::SelectFileDialog::SetFactory(factory_.get());
|
| - }
|
| -
|
| - virtual Browser* GetBrowser() { return browser(); }
|
| - scoped_ptr<TestSelectFileDialogFactory> factory_;
|
| - FilePath test_file_;
|
| -};
|
| -
|
| -IN_PROC_BROWSER_TEST_F(NativeServicesBrowserTest, PickFileSelected) {
|
| - content::WebContents* tab =
|
| - GetBrowser()->tab_strip_model()->GetActiveWebContents();
|
| -
|
| - webkit_glue::WebIntentData intent;
|
| - intent.action = ASCIIToUTF16(web_intents::kActionPick);
|
| - intent.type = ASCIIToUTF16("image/*");
|
| -
|
| - TestIntentsDispatcher dispatcher(intent);
|
| - web_intents::NativeServiceFactory factory;
|
| - GURL url(web_intents::kNativeFilePickerUrl);
|
| - scoped_ptr<web_intents::IntentServiceHost> service(
|
| - factory.CreateServiceInstance(url, intent, tab));
|
| - service->HandleIntent(&dispatcher);
|
| -
|
| - // Reads of file size are done on the FILE thread, then posted
|
| - // back to the UI thread.
|
| - content::RunAllPendingInMessageLoop(BrowserThread::FILE);
|
| - content::RunAllPendingInMessageLoop(BrowserThread::UI);
|
| -
|
| - ASSERT_TRUE(dispatcher.reply_);
|
| - EXPECT_EQ(
|
| - webkit_glue::WebIntentReply(
|
| - webkit_glue::WEB_INTENT_REPLY_SUCCESS,
|
| - test_file_,
|
| - kTestFileSize),
|
| - *dispatcher.reply_.get());
|
| -}
|
| -
|
| -IN_PROC_BROWSER_TEST_F(NativeServicesBrowserTest, PickFileCancelled) {
|
| - picker_success_mode = false;
|
| - content::WebContents* tab =
|
| - GetBrowser()->tab_strip_model()->GetActiveWebContents();
|
| -
|
| - webkit_glue::WebIntentData intent;
|
| - intent.action = ASCIIToUTF16(web_intents::kActionPick);
|
| - intent.type = ASCIIToUTF16("image/*");
|
| -
|
| - TestIntentsDispatcher dispatcher(intent);
|
| - web_intents::NativeServiceFactory factory;
|
| - GURL url(web_intents::kNativeFilePickerUrl);
|
| - scoped_ptr<web_intents::IntentServiceHost> service(
|
| - factory.CreateServiceInstance(url, intent, tab));
|
| - service->HandleIntent(&dispatcher);
|
| -
|
| - ASSERT_TRUE(dispatcher.reply_);
|
| - EXPECT_EQ(
|
| - webkit_glue::WebIntentReply(
|
| - webkit_glue::WEB_INTENT_REPLY_FAILURE,
|
| - string16()),
|
| - *dispatcher.reply_.get());
|
| -}
|
|
|