Update {virtual,override,final} to follow C++11 style.
[chromium-blink-merge.git] / extensions / browser / api / mime_handler_private / mime_handler_private_unittest.cc
blob5ef18513781d07bcce49700165468de521450178
1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/memory/scoped_ptr.h"
6 #include "content/public/browser/stream_handle.h"
7 #include "content/public/browser/stream_info.h"
8 #include "extensions/browser/api/mime_handler_private/mime_handler_private.cc"
9 #include "extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h"
10 #include "testing/gtest/include/gtest/gtest.h"
12 namespace extensions {
14 class TestStreamHandle : public content::StreamHandle {
15 public:
16 TestStreamHandle() : url_("stream://url") {}
18 ~TestStreamHandle() override {
19 while (!close_callbacks_.empty()) {
20 close_callbacks_.front().Run();
21 close_callbacks_.pop();
25 const GURL& GetURL() override { return url_; }
27 void AddCloseListener(const base::Closure& callback) override {
28 close_callbacks_.push(callback);
31 private:
32 GURL url_;
33 std::queue<base::Closure> close_callbacks_;
36 class MimeHandlerServiceImplTest : public testing::Test {
37 public:
38 void SetUp() override {
39 scoped_ptr<content::StreamInfo> stream_info(new content::StreamInfo);
40 stream_info->handle = make_scoped_ptr(new TestStreamHandle);
41 stream_info->mime_type = "test/unit";
42 stream_info->original_url = GURL("test://extensions_unittests");
43 stream_container_.reset(
44 new StreamContainer(stream_info.Pass(), 1, true, GURL(), ""));
45 service_.reset(new MimeHandlerServiceImpl(stream_container_->GetWeakPtr()));
47 void TearDown() override {
48 service_.reset();
49 stream_container_.reset();
52 void AbortCallback() { abort_called_ = true; }
53 void GetStreamInfoCallback(mime_handler::StreamInfoPtr stream_info) {
54 stream_info_ = stream_info.Pass();
57 scoped_ptr<StreamContainer> stream_container_;
58 scoped_ptr<mime_handler::MimeHandlerService> service_;
59 bool abort_called_ = false;
60 mime_handler::StreamInfoPtr stream_info_;
63 TEST_F(MimeHandlerServiceImplTest, Abort) {
64 service_->AbortStream(base::Bind(&MimeHandlerServiceImplTest::AbortCallback,
65 base::Unretained(this)));
66 EXPECT_TRUE(abort_called_);
68 abort_called_ = false;
69 service_->AbortStream(base::Bind(&MimeHandlerServiceImplTest::AbortCallback,
70 base::Unretained(this)));
71 EXPECT_TRUE(abort_called_);
73 stream_container_.reset();
74 abort_called_ = false;
75 service_->AbortStream(base::Bind(&MimeHandlerServiceImplTest::AbortCallback,
76 base::Unretained(this)));
77 EXPECT_TRUE(abort_called_);
80 TEST_F(MimeHandlerServiceImplTest, GetStreamInfo) {
81 service_->GetStreamInfo(
82 base::Bind(&MimeHandlerServiceImplTest::GetStreamInfoCallback,
83 base::Unretained(this)));
84 ASSERT_TRUE(stream_info_);
85 EXPECT_TRUE(stream_info_->embedded);
86 EXPECT_EQ(1, stream_info_->tab_id);
87 EXPECT_EQ("test/unit", stream_info_->mime_type);
88 EXPECT_EQ("test://extensions_unittests", stream_info_->original_url);
89 EXPECT_EQ("stream://url", stream_info_->stream_url);
91 service_->AbortStream(base::Bind(&MimeHandlerServiceImplTest::AbortCallback,
92 base::Unretained(this)));
93 EXPECT_TRUE(abort_called_);
94 service_->GetStreamInfo(
95 base::Bind(&MimeHandlerServiceImplTest::GetStreamInfoCallback,
96 base::Unretained(this)));
97 ASSERT_FALSE(stream_info_);
99 stream_container_.reset();
100 service_->GetStreamInfo(
101 base::Bind(&MimeHandlerServiceImplTest::GetStreamInfoCallback,
102 base::Unretained(this)));
103 ASSERT_FALSE(stream_info_);
106 } // namespace extensions