Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(42)

Side by Side Diff: chrome/browser/media/media_internals_unittest.cc

Issue 12153002: Move chrome://media-internals to content. This allows us to hide implementation details from the pu… (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2011 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.
4
5 #include "chrome/browser/media/media_internals.h"
6
7 #include "base/memory/scoped_ptr.h"
8 #include "base/message_loop.h"
9 #include "chrome/browser/media/media_internals_observer.h"
10 #include "content/public/test/test_browser_thread.h"
11 #include "testing/gmock/include/gmock/gmock.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 class MockMediaInternalsObserver : public MediaInternalsObserver {
15 public:
16 MOCK_METHOD1(OnUpdate, void(const string16& javascript));
17 };
18
19 class MediaInternalsTest : public testing::Test {
20 public:
21 MediaInternalsTest() : io_thread_(content::BrowserThread::IO, &loop_) {}
22 DictionaryValue* data() {
23 return &internals_->data_;
24 }
25
26 void DeleteItem(const std::string& item) {
27 internals_->DeleteItem(item);
28 }
29
30 void UpdateItem(const std::string& item, const std::string& property,
31 Value* value) {
32 internals_->UpdateItem("", item, property, value);
33 }
34
35 void SendUpdate(const std::string& function, Value* value) {
36 internals_->SendUpdate(function, value);
37 }
38
39 protected:
40 virtual void SetUp() {
41 internals_.reset(new MediaInternals());
42 }
43
44 MessageLoop loop_;
45 content::TestBrowserThread io_thread_;
46 scoped_ptr<MediaInternals> internals_;
47 };
48
49 TEST_F(MediaInternalsTest, UpdateAddsNewItem) {
50 UpdateItem("some.item", "testing", Value::CreateBooleanValue(true));
51 bool testing = false;
52 std::string id;
53
54 EXPECT_TRUE(data()->GetBoolean("some.item.testing", &testing));
55 EXPECT_TRUE(testing);
56
57 EXPECT_TRUE(data()->GetString("some.item.id", &id));
58 EXPECT_EQ(id, "some.item");
59 }
60
61 TEST_F(MediaInternalsTest, UpdateModifiesExistingItem) {
62 UpdateItem("some.item", "testing", Value::CreateBooleanValue(true));
63 UpdateItem("some.item", "value", Value::CreateIntegerValue(5));
64 UpdateItem("some.item", "testing", Value::CreateBooleanValue(false));
65 bool testing = true;
66 int value = 0;
67 std::string id;
68
69 EXPECT_TRUE(data()->GetBoolean("some.item.testing", &testing));
70 EXPECT_FALSE(testing);
71
72 EXPECT_TRUE(data()->GetInteger("some.item.value", &value));
73 EXPECT_EQ(value, 5);
74
75 EXPECT_TRUE(data()->GetString("some.item.id", &id));
76 EXPECT_EQ(id, "some.item");
77 }
78
79 TEST_F(MediaInternalsTest, ObserversReceiveNotifications) {
80 scoped_ptr<MockMediaInternalsObserver> observer(
81 new MockMediaInternalsObserver());
82
83 EXPECT_CALL(*observer.get(), OnUpdate(testing::_)).Times(1);
84
85 internals_->AddObserver(observer.get());
86 SendUpdate("fn", data());
87 }
88
89 TEST_F(MediaInternalsTest, RemovedObserversReceiveNoNotifications) {
90 scoped_ptr<MockMediaInternalsObserver> observer(
91 new MockMediaInternalsObserver());
92
93 EXPECT_CALL(*observer.get(), OnUpdate(testing::_)).Times(0);
94
95 internals_->AddObserver(observer.get());
96 internals_->RemoveObserver(observer.get());
97 SendUpdate("fn", data());
98 }
99
100 TEST_F(MediaInternalsTest, DeleteRemovesItem) {
101 Value* out;
102
103 UpdateItem("some.item", "testing", Value::CreateNullValue());
104 EXPECT_TRUE(data()->Get("some.item", &out));
105 EXPECT_TRUE(data()->Get("some", &out));
106
107 DeleteItem("some.item");
108 EXPECT_FALSE(data()->Get("some.item", &out));
109 EXPECT_TRUE(data()->Get("some", &out));
110
111 DeleteItem("some");
112 EXPECT_FALSE(data()->Get("some.item", &out));
113 EXPECT_FALSE(data()->Get("some", &out));
114 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698