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

Side by Side Diff: content/browser/vr/vr_service_unittest.cc

Issue 829803003: Adding Chrome-side WebVR interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Updates/cleanups before pulling in reviewers. Created 5 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
OLDNEW
(Empty)
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.
4
5 #include "base/memory/scoped_ptr.h"
6 #include "content/browser/vr/vr_device_provider.h"
7 #include "content/browser/vr/vr_service.h"
8 #include "content/browser/vr/vr_test_helpers.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 namespace content {
12
13 using blink::WebVRDevice;
14
15 class VRServiceTest : public testing::Test {
16 protected:
17 VRServiceTest();
18 ~VRServiceTest() override;
19
20 void SetUp() override;
21
22 protected:
23 MockVRDeviceProvider* provider_;
24 VRService* service_;
25
26 DISALLOW_COPY_AND_ASSIGN(VRServiceTest);
27 };
28
29 VRServiceTest::VRServiceTest() {
30
31 }
32
33 VRServiceTest::~VRServiceTest() {
34 delete service_;
35 }
36
37 void VRServiceTest::SetUp() {
38 provider_ = new MockVRDeviceProvider();
39 service_ = new VRService(provider_);
40 }
41
42 TEST_F(VRServiceTest, InitializationTest) {
43 EXPECT_FALSE(provider_->IsInitialized());
44
45 // The VRService should initialize each of it's providers upon initialization.
46 service_->Initialize();
47 EXPECT_TRUE(provider_->IsInitialized());
48
49 // Similarly, upon Shutdown it should shut down each of it's providers.
50 service_->Shutdown();
51 EXPECT_FALSE(provider_->IsInitialized());
52
53 // Calling GetDevices should initialize the service if it hasn't been
54 // initialized yet or has been shutdown.
55 std::vector<blink::WebVRDevice> webvr_devices;
56 service_->GetVRDevices(&webvr_devices);
57 EXPECT_TRUE(provider_->IsInitialized());
58 }
59
60 TEST_F(VRServiceTest, GetDevicesBasicTest) {
61 service_->Initialize();
62
63 // Should successfully return zero devices when none are available.
64 std::vector<blink::WebVRDevice> webvr_devices;
65 service_->GetVRDevices(&webvr_devices);
66 EXPECT_EQ((size_t)0, webvr_devices.size());
67
68 // GetDeviceByIndex should return NULL if an invalid index in queried.
69 VRDevice* queried_device = service_->GetDevice(1);
70 EXPECT_EQ(NULL, queried_device);
71
72 scoped_ptr<MockVRDevice> device1(new MockVRDevice(provider_));
73 provider_->AddDevice(device1.get());
74 service_->GetVRDevices(&webvr_devices);
75 // Should have successfully returned one device.
76 EXPECT_EQ((size_t)1, webvr_devices.size());
77 // The WebVRDevice index should match the device id.
78 EXPECT_EQ(webvr_devices[0].index, device1->id());
79
80 scoped_ptr<MockVRDevice> device2(new MockVRDevice(provider_));
81 provider_->AddDevice(device2.get());
82 service_->GetVRDevices(&webvr_devices);
83 // Should have successfully returned two devices.
84 EXPECT_EQ((size_t)2, webvr_devices.size());
85 // NOTE: Returned WebVRDevices are not required to be in any particular order.
86
87 // Querying the WebVRDevice index should return the correct device.
88 queried_device = service_->GetDevice(device1->id());
89 EXPECT_EQ(device1.get(), queried_device);
90 queried_device = service_->GetDevice(device2->id());
91 EXPECT_EQ(device2.get(), queried_device);
92
93 provider_->RemoveDevice(device1.get());
94 service_->GetVRDevices(&webvr_devices);
95 // Should have successfully returned one device.
96 EXPECT_EQ((size_t)1, webvr_devices.size());
97 // The WebVRDevice index should match the only remaining device id.
98 EXPECT_EQ(webvr_devices[0].index, device2->id());
99 }
100
101 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698