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

Side by Side Diff: content/browser/media/dtls_identity_store_unittest.cc

Issue 15969025: Generates the DTLS identity in browser process and returns it to render process. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 6 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
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/threading/sequenced_worker_pool.h"
8 #include "content/browser/media/dtls_identity_store.h"
9 #include "content/public/test/test_browser_thread.h"
10 #include "googleurl/src/gurl.h"
11 #include "net/base/net_errors.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace content {
15 namespace {
16
17 class DTLSIdentityStoreForTest : public DTLSIdentityStore {
18 public:
19 DTLSIdentityStoreForTest(const scoped_refptr<base::TaskRunner>& task_runner)
20 : DTLSIdentityStore(task_runner) {}
21
22 private:
23 virtual ~DTLSIdentityStoreForTest() {}
24 };
25
26 class DTLSIdentityStoreTest : public testing::Test {
27 public:
28 DTLSIdentityStoreTest()
29 : io_thread_(BrowserThread::IO, &message_loop_),
30 sequenced_worker_pool_(
31 new base::SequencedWorkerPool(3, "ServerBoundCertServiceTest")),
32 dtls_identity_store_(
33 new DTLSIdentityStoreForTest(sequenced_worker_pool_)) {}
34
35 virtual ~DTLSIdentityStoreTest() { sequenced_worker_pool_->Shutdown(); }
36
37 protected:
38 base::MessageLoopForUI message_loop_;
39 TestBrowserThread io_thread_;
Ryan Sleevi 2013/06/13 22:36:47 Please see the PSA https://groups.google.com/a/chr
jiayl 2013/06/14 00:37:01 Done.
40 scoped_refptr<base::SequencedWorkerPool> sequenced_worker_pool_;
41 scoped_refptr<DTLSIdentityStoreForTest> dtls_identity_store_;
42 };
43
44 void OnRequestCompleted(bool* completed,
45 int error,
46 const std::string& certificate,
47 const std::string& private_key) {
48 ASSERT_EQ(net::OK, error);
49 ASSERT_NE("", certificate);
50 ASSERT_NE("", private_key);
51 *completed = true;
52 }
53
54 TEST_F(DTLSIdentityStoreTest, RequestIdentity) {
55 DTLSIdentityStore::RequestHandle request_handle;
56 scoped_ptr<bool> completed;
57 completed.reset(new bool(false));
58 dtls_identity_store_->RequestIdentity(
59 GURL("http://google.com"),
60 "a",
61 "b",
62 base::Bind(&OnRequestCompleted, base::Unretained(completed.get())),
63 &request_handle);
64 sequenced_worker_pool_->FlushForTesting();
65 message_loop_.RunUntilIdle();
66
67 EXPECT_EQ(true, *completed);
68 }
69
70 TEST_F(DTLSIdentityStoreTest, CancelRequest) {
71 DTLSIdentityStore::RequestHandle request_handle;
72 scoped_ptr<bool> completed;
73 completed.reset(new bool(false));
74 dtls_identity_store_->RequestIdentity(
75 GURL("http://google.com"),
76 "a",
77 "b",
78 base::Bind(&OnRequestCompleted, base::Unretained(completed.get())),
79 &request_handle);
80 request_handle.Cancel();
81 sequenced_worker_pool_->FlushForTesting();
82 message_loop_.RunUntilIdle();
83
84 EXPECT_EQ(false, *completed);
85 }
86
87 TEST_F(DTLSIdentityStoreTest, MultipleRequests) {
88 scoped_ptr<bool> completed_1;
89 completed_1.reset(new bool(false));
90 scoped_ptr<bool> completed_2;
91 completed_2.reset(new bool(false));
92
93 DTLSIdentityStore::RequestHandle request_handle_1;
94 DTLSIdentityStore::RequestHandle request_handle_2;
95 dtls_identity_store_->RequestIdentity(
96 GURL("http://foo.com"),
97 "a",
98 "b",
99 base::Bind(&OnRequestCompleted, base::Unretained(completed_1.get())),
100 &request_handle_1);
101
102 dtls_identity_store_->RequestIdentity(
103 GURL("http://bar.com"),
104 "a",
105 "b",
106 base::Bind(&OnRequestCompleted, base::Unretained(completed_2.get())),
107 &request_handle_2);
108
109 sequenced_worker_pool_->FlushForTesting();
110 message_loop_.RunUntilIdle();
111
112 EXPECT_EQ(true, *completed_1);
113 EXPECT_EQ(true, *completed_2);
114 }
115
116 } // namespace
117 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698