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

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

Issue 12089034: Add a WebUIControllerFactory in content and move chrome://webrtc-internals to content. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync 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) 2013 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 "base/memory/scoped_ptr.h"
6 #include "base/message_loop.h"
7 #include "base/values.h"
8 #include "chrome/browser/media/chrome_webrtc_internals.h"
9 #include "chrome/browser/media/webrtc_internals_ui_observer.h"
10 #include "content/public/test/test_browser_thread.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 using base::Value;
14 using base::DictionaryValue;
15 using std::string;
16
17 static const string kContraints = "c";
18 static const string kServers = "s";
19 static const string kUrl = "u";
20
21 class MockWebRTCInternalsProxy : public WebRTCInternalsUIObserver {
22 public:
23 void OnUpdate(const string& command, const Value* value) OVERRIDE {
24 command_ = command;
25 value_.reset(value->DeepCopy());
26 }
27
28 string command() {
29 return command_;
30 }
31
32 Value* value() {
33 return value_.get();
34 }
35
36 private:
37 string command_;
38 scoped_ptr<Value> value_;
39 };
40
41 class WebRTCInternalsTest : public testing::Test {
42 public:
43 WebRTCInternalsTest()
44 : io_thread_(content::BrowserThread::UI, &io_loop_) {}
45
46 protected:
47 virtual void SetUp() {
48 webrtc_internals_ = ChromeWebRTCInternals::GetInstance();
49 }
50
51 string ExpectedInfo(string prefix,
52 string id,
53 string suffix) {
54 static const string kstatic_part1 = string(
55 "{\"constraints\":\"c\",");
56 static const string kstatic_part2 = string(
57 ",\"servers\":\"s\",\"url\":\"u\"}");
58 return prefix + kstatic_part1 + id + kstatic_part2 + suffix;
59 }
60
61 MessageLoop io_loop_;
62 content::TestBrowserThread io_thread_;
63 ChromeWebRTCInternals* webrtc_internals_;
64 };
65
66 TEST_F(WebRTCInternalsTest, GetInstance) {
67 EXPECT_TRUE(webrtc_internals_);
68 }
69
70 TEST_F(WebRTCInternalsTest, AddRemoveObserver) {
71 scoped_ptr<MockWebRTCInternalsProxy> observer(
72 new MockWebRTCInternalsProxy());
73 webrtc_internals_->AddObserver(observer.get());
74 webrtc_internals_->RemoveObserver(observer.get());
75 webrtc_internals_->AddPeerConnection(3, 4, kUrl, kServers, kContraints);
76 EXPECT_EQ("", observer->command());
77
78 webrtc_internals_->RemovePeerConnection(3, 4);
79 }
80
81 TEST_F(WebRTCInternalsTest, SendAddPeerConnectionUpdate) {
82 scoped_ptr<MockWebRTCInternalsProxy> observer(
83 new MockWebRTCInternalsProxy());
84 webrtc_internals_->AddObserver(observer.get());
85 webrtc_internals_->AddPeerConnection(1, 2, kUrl, kServers, kContraints);
86 EXPECT_EQ("addPeerConnection", observer->command());
87
88 DictionaryValue* dict = NULL;
89 EXPECT_TRUE(observer->value()->GetAsDictionary(&dict));
90
91 int int_value;
92 EXPECT_TRUE(dict->GetInteger("pid", &int_value));
93 EXPECT_EQ(1, int_value);
94 EXPECT_TRUE(dict->GetInteger("lid", &int_value));
95 EXPECT_EQ(2, int_value);
96
97 string value;
98 EXPECT_TRUE(dict->GetString("url", &value));
99 EXPECT_EQ(kUrl, value);
100 EXPECT_TRUE(dict->GetString("servers", &value));
101 EXPECT_EQ(kServers, value);
102 EXPECT_TRUE(dict->GetString("constraints", &value));
103 EXPECT_EQ(kContraints, value);
104
105 webrtc_internals_->RemoveObserver(observer.get());
106 webrtc_internals_->RemovePeerConnection(1, 2);
107 }
108
109 TEST_F(WebRTCInternalsTest, SendRemovePeerConnectionUpdate) {
110 scoped_ptr<MockWebRTCInternalsProxy> observer(
111 new MockWebRTCInternalsProxy());
112 webrtc_internals_->AddObserver(observer.get());
113 webrtc_internals_->AddPeerConnection(1, 2, kUrl, kServers, kContraints);
114 webrtc_internals_->RemovePeerConnection(1, 2);
115 EXPECT_EQ("removePeerConnection", observer->command());
116
117 DictionaryValue* dict = NULL;
118 EXPECT_TRUE(observer->value()->GetAsDictionary(&dict));
119
120 int int_value;
121 EXPECT_TRUE(dict->GetInteger("pid", &int_value));
122 EXPECT_EQ(1, int_value);
123 EXPECT_TRUE(dict->GetInteger("lid", &int_value));
124 EXPECT_EQ(2, int_value);
125
126 webrtc_internals_->RemoveObserver(observer.get());
127 }
128
129 TEST_F(WebRTCInternalsTest, SendUpdatePeerConnectionUpdate) {
130 scoped_ptr<MockWebRTCInternalsProxy> observer(
131 new MockWebRTCInternalsProxy());
132 webrtc_internals_->AddObserver(observer.get());
133 webrtc_internals_->AddPeerConnection(1, 2, kUrl, kServers, kContraints);
134
135 const string update_type = "fakeType";
136 const string update_value = "fakeValue";
137 webrtc_internals_->UpdatePeerConnection(1, 2, update_type, update_value);
138
139 EXPECT_EQ("updatePeerConnection", observer->command());
140
141 DictionaryValue* dict = NULL;
142 EXPECT_TRUE(observer->value()->GetAsDictionary(&dict));
143
144 int int_value;
145 EXPECT_TRUE(dict->GetInteger("pid", &int_value));
146 EXPECT_EQ(1, int_value);
147 EXPECT_TRUE(dict->GetInteger("lid", &int_value));
148 EXPECT_EQ(2, int_value);
149
150 string value;
151 EXPECT_TRUE(dict->GetString("type", &value));
152 EXPECT_EQ(update_type, value);
153 EXPECT_TRUE(dict->GetString("value", &value));
154 EXPECT_EQ(update_value, value);
155
156 webrtc_internals_->RemovePeerConnection(1, 2);
157 webrtc_internals_->RemoveObserver(observer.get());
158 }
OLDNEW
« no previous file with comments | « chrome/browser/media/chrome_webrtc_internals.cc ('k') | chrome/browser/media/webrtc_internals_ui_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698