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

Side by Side Diff: ppapi/tests/test_network_monitor_private.cc

Issue 9557006: Implement PPB_NetworkMonitor_Private Pepper interface. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - Created 8 years, 9 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) 2012 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 "ppapi/tests/test_network_monitor_private.h"
6
7 #include "ppapi/cpp/private/network_list_private.h"
8 #include "ppapi/cpp/private/network_monitor_private.h"
9 #include "ppapi/tests/testing_instance.h"
10 #include "ppapi/tests/test_utils.h"
11 #include "ppapi/cpp/module.h"
12
13 REGISTER_TEST_CASE(NetworkMonitorPrivate);
14
15 namespace {
16
17 struct CallbackData {
18 CallbackData(PP_Instance instance)
dmichael (off chromium) 2012/03/01 18:58:04 nit: explicit
Sergey Ulanov 2012/03/03 02:26:08 Done.
19 : call_counter(0),
20 completion_callback(instance),
21 list_resource(0) {
22 }
23 int call_counter;
24 TestCompletionCallback completion_callback;
25 PP_Resource list_resource;
dmichael (off chromium) 2012/03/01 18:58:04 You probably should add a destructor that releases
Sergey Ulanov 2012/03/03 02:26:08 Done.
26 };
27
28 void TestCallback(void* user_data, PP_Resource network_list) {
29 CallbackData* data = reinterpret_cast<CallbackData*>(user_data);
dmichael (off chromium) 2012/03/01 18:58:04 nit: static_cast
Sergey Ulanov 2012/03/03 02:26:08 Done.
30 data->call_counter++;
31 if (data->call_counter == 1) {
32 data->list_resource = network_list;
33 static_cast<pp::CompletionCallback>(data->completion_callback).Run(PP_OK);
34 } else {
35 pp::Module::Get()->core()->ReleaseResource(network_list);
dmichael (off chromium) 2012/03/01 18:58:04 Can you explain what's going on? You're saving the
Sergey Ulanov 2012/03/03 02:26:08 Yes, that was the idea, but now I changed it to al
36 }
37 }
38
39 } // namespace
40
41 TestNetworkMonitorPrivate::TestNetworkMonitorPrivate(TestingInstance* instance)
42 : TestCase(instance) {
43 }
44
45 bool TestNetworkMonitorPrivate::Init() {
46 if (!pp::NetworkMonitorPrivate::IsAvailable())
47 return false;
48
49 return true;
50 }
51
52 void TestNetworkMonitorPrivate::RunTests(const std::string& filter) {
53 RUN_TEST_FORCEASYNC_AND_NOT(Basic, filter);
54 RUN_TEST_FORCEASYNC_AND_NOT(2Monitors, filter);
55 }
56
57 std::string TestNetworkMonitorPrivate::TestBasic() {
58 CallbackData callback_data(instance_->pp_instance());
59
60 pp::NetworkMonitorPrivate network_monitor(
61 instance_, &TestCallback, reinterpret_cast<void*>(&callback_data));
62 ASSERT_EQ(callback_data.completion_callback.WaitForResult(), PP_OK);
63 ASSERT_EQ(callback_data.call_counter, 1);
64
65 // Verify that there is at least one interface
66 pp::NetworkListPrivate network_list(callback_data.list_resource);
67 ASSERT_TRUE(network_list.GetCount() >= 1U);
68
69 // Verify that the first interface has at least one address.
70 std::vector<PP_NetAddress_Private> addresses;
71 network_list.GetIpAddresses(0, &addresses);
72 ASSERT_TRUE(addresses.size() >= 1U);
73
74 PASS();
75 }
76
77 std::string TestNetworkMonitorPrivate::Test2Monitors() {
78 CallbackData callback_data(instance_->pp_instance());
79
80 pp::NetworkMonitorPrivate network_monitor(
81 instance_, &TestCallback, reinterpret_cast<void*>(&callback_data));
82 ASSERT_EQ(callback_data.completion_callback.WaitForResult(), PP_OK);
83 ASSERT_EQ(callback_data.call_counter, 1);
84
85 CallbackData callback_data_2(instance_->pp_instance());
86
87 pp::NetworkMonitorPrivate network_monitor_2(
88 instance_, &TestCallback, reinterpret_cast<void*>(&callback_data_2));
89 ASSERT_EQ(callback_data_2.completion_callback.WaitForResult(), PP_OK);
90 ASSERT_EQ(callback_data_2.call_counter, 1);
91
92 PASS();
93 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698