| Index: extensions/browser/api/mime_handler_private/mime_handler_private_unittest.cc
|
| diff --git a/extensions/browser/api/mime_handler_private/mime_handler_private_unittest.cc b/extensions/browser/api/mime_handler_private/mime_handler_private_unittest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5ef18513781d07bcce49700165468de521450178
|
| --- /dev/null
|
| +++ b/extensions/browser/api/mime_handler_private/mime_handler_private_unittest.cc
|
| @@ -0,0 +1,106 @@
|
| +// Copyright 2015 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 "base/memory/scoped_ptr.h"
|
| +#include "content/public/browser/stream_handle.h"
|
| +#include "content/public/browser/stream_info.h"
|
| +#include "extensions/browser/api/mime_handler_private/mime_handler_private.cc"
|
| +#include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace extensions {
|
| +
|
| +class TestStreamHandle : public content::StreamHandle {
|
| + public:
|
| + TestStreamHandle() : url_("stream://url") {}
|
| +
|
| + ~TestStreamHandle() override {
|
| + while (!close_callbacks_.empty()) {
|
| + close_callbacks_.front().Run();
|
| + close_callbacks_.pop();
|
| + }
|
| + }
|
| +
|
| + const GURL& GetURL() override { return url_; }
|
| +
|
| + void AddCloseListener(const base::Closure& callback) override {
|
| + close_callbacks_.push(callback);
|
| + }
|
| +
|
| + private:
|
| + GURL url_;
|
| + std::queue<base::Closure> close_callbacks_;
|
| +};
|
| +
|
| +class MimeHandlerServiceImplTest : public testing::Test {
|
| + public:
|
| + void SetUp() override {
|
| + scoped_ptr<content::StreamInfo> stream_info(new content::StreamInfo);
|
| + stream_info->handle = make_scoped_ptr(new TestStreamHandle);
|
| + stream_info->mime_type = "test/unit";
|
| + stream_info->original_url = GURL("test://extensions_unittests");
|
| + stream_container_.reset(
|
| + new StreamContainer(stream_info.Pass(), 1, true, GURL(), ""));
|
| + service_.reset(new MimeHandlerServiceImpl(stream_container_->GetWeakPtr()));
|
| + }
|
| + void TearDown() override {
|
| + service_.reset();
|
| + stream_container_.reset();
|
| + }
|
| +
|
| + void AbortCallback() { abort_called_ = true; }
|
| + void GetStreamInfoCallback(mime_handler::StreamInfoPtr stream_info) {
|
| + stream_info_ = stream_info.Pass();
|
| + }
|
| +
|
| + scoped_ptr<StreamContainer> stream_container_;
|
| + scoped_ptr<mime_handler::MimeHandlerService> service_;
|
| + bool abort_called_ = false;
|
| + mime_handler::StreamInfoPtr stream_info_;
|
| +};
|
| +
|
| +TEST_F(MimeHandlerServiceImplTest, Abort) {
|
| + service_->AbortStream(base::Bind(&MimeHandlerServiceImplTest::AbortCallback,
|
| + base::Unretained(this)));
|
| + EXPECT_TRUE(abort_called_);
|
| +
|
| + abort_called_ = false;
|
| + service_->AbortStream(base::Bind(&MimeHandlerServiceImplTest::AbortCallback,
|
| + base::Unretained(this)));
|
| + EXPECT_TRUE(abort_called_);
|
| +
|
| + stream_container_.reset();
|
| + abort_called_ = false;
|
| + service_->AbortStream(base::Bind(&MimeHandlerServiceImplTest::AbortCallback,
|
| + base::Unretained(this)));
|
| + EXPECT_TRUE(abort_called_);
|
| +}
|
| +
|
| +TEST_F(MimeHandlerServiceImplTest, GetStreamInfo) {
|
| + service_->GetStreamInfo(
|
| + base::Bind(&MimeHandlerServiceImplTest::GetStreamInfoCallback,
|
| + base::Unretained(this)));
|
| + ASSERT_TRUE(stream_info_);
|
| + EXPECT_TRUE(stream_info_->embedded);
|
| + EXPECT_EQ(1, stream_info_->tab_id);
|
| + EXPECT_EQ("test/unit", stream_info_->mime_type);
|
| + EXPECT_EQ("test://extensions_unittests", stream_info_->original_url);
|
| + EXPECT_EQ("stream://url", stream_info_->stream_url);
|
| +
|
| + service_->AbortStream(base::Bind(&MimeHandlerServiceImplTest::AbortCallback,
|
| + base::Unretained(this)));
|
| + EXPECT_TRUE(abort_called_);
|
| + service_->GetStreamInfo(
|
| + base::Bind(&MimeHandlerServiceImplTest::GetStreamInfoCallback,
|
| + base::Unretained(this)));
|
| + ASSERT_FALSE(stream_info_);
|
| +
|
| + stream_container_.reset();
|
| + service_->GetStreamInfo(
|
| + base::Bind(&MimeHandlerServiceImplTest::GetStreamInfoCallback,
|
| + base::Unretained(this)));
|
| + ASSERT_FALSE(stream_info_);
|
| +}
|
| +
|
| +} // namespace extensions
|
|
|