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

Side by Side Diff: ppapi/native_client/tests/ppapi_browser/ppb_scrollbar/ppapi_ppb_scrollbar.cc

Issue 7740013: Cloning a bunch of stuff from the native_client repository at r6528 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 4 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 Native Client 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 <string.h>
6
7 #include "native_client/src/include/nacl_macros.h"
8 #include "native_client/src/shared/platform/nacl_check.h"
9 #include "native_client/tests/ppapi_test_lib/get_browser_interface.h"
10 #include "native_client/tests/ppapi_test_lib/test_interface.h"
11 #include "ppapi/c/dev/ppb_scrollbar_dev.h"
12 #include "ppapi/c/pp_bool.h"
13 #include "ppapi/c/pp_errors.h"
14 #include "ppapi/c/pp_rect.h"
15 #include "ppapi/c/ppb_core.h"
16 #include "ppapi/c/ppb_image_data.h"
17 #include "ppapi/c/ppp_messaging.h"
18
19 namespace {
20
21 const PP_Bool kVertical = PP_TRUE;
22
23 // Test PPB_Scrollbar_Dev::Create() and PPB_Scrollbar_Dev::IsScrollbar().
24 void TestCreate() {
25 // Create a vertical scrollbar.
26 PP_Resource scrollbar = PPBScrollbarDev()->Create(pp_instance(),
27 kVertical);
28 EXPECT(scrollbar != kInvalidResource);
29 EXPECT(PPBScrollbarDev()->IsScrollbar(scrollbar));
30 PPBCore()->ReleaseResource(scrollbar);
31
32 // Create a horizontal scrollbar.
33 scrollbar = PPBScrollbarDev()->Create(pp_instance(),
34 PP_FALSE); // vertical
35 EXPECT(scrollbar != kInvalidResource);
36 EXPECT(PPBScrollbarDev()->IsScrollbar(scrollbar));
37 PPBCore()->ReleaseResource(scrollbar);
38
39 // Test that an invalid instance causes failure.
40 scrollbar = PPBScrollbarDev()->Create(kInvalidInstance,
41 PP_TRUE); // vertical
42 EXPECT(scrollbar == kInvalidResource);
43 EXPECT(!PPBScrollbarDev()->IsScrollbar(scrollbar));
44
45 TEST_PASSED;
46 }
47
48 // Test PPB_Scrollbar_Dev::GetThickness().
49 void TestGetThickness() {
50 // Thickness is a platform-defined constant; about all we can assume is
51 // that it is greater than 0.
52 PP_Resource scrollbar = PPBScrollbarDev()->Create(pp_instance(),
53 kVertical);
54 uint32_t thickness = PPBScrollbarDev()->GetThickness(scrollbar);
55 EXPECT(thickness > 0);
56
57 PPBCore()->ReleaseResource(scrollbar);
58
59 TEST_PASSED;
60 }
61
62 // Test PPB_Scrollbar_Dev::GetValue(), PPB_Scrollbar_Dev::SetValue().
63 void TestValue() {
64 // Test that initial value is 0.
65 PP_Resource scrollbar = PPBScrollbarDev()->Create(pp_instance(),
66 kVertical);
67 uint32_t value = PPBScrollbarDev()->GetValue(scrollbar);
68 EXPECT(value == 0);
69
70 // Set document size to expand value range.
71 // TODO(bbudge) Refine tests once issues with scrollbar size/value are
72 // worked out. http://code.google.com/p/chromium/issues/detail?id=89367
73 PPBScrollbarDev()->SetDocumentSize(scrollbar, 100);
74 PPBScrollbarDev()->SetValue(scrollbar, 10);
75 value = PPBScrollbarDev()->GetValue(scrollbar);
76 EXPECT(value == 10);
77
78 PPBScrollbarDev()->SetValue(scrollbar, 0);
79 value = PPBScrollbarDev()->GetValue(scrollbar);
80 EXPECT(value == 0);
81
82 PPBCore()->ReleaseResource(scrollbar);
83
84 TEST_PASSED;
85 }
86
87 // Test PPB_Scrollbar_Dev::SetDocumentSize(). This only effects scrollbar
88 // appearance, so it should be verified visually.
89 void TestSetDocumentSize() {
90 PP_Resource scrollbar = PPBScrollbarDev()->Create(pp_instance(),
91 kVertical);
92 PPBScrollbarDev()->SetDocumentSize(scrollbar, 100);
93 PPBCore()->ReleaseResource(scrollbar);
94
95 TEST_PASSED;
96 }
97
98 // Test PPB_Scrollbar_Dev::ScrollBy().
99 void TestScrollBy() {
100 PP_Resource scrollbar = PPBScrollbarDev()->Create(pp_instance(),
101 kVertical);
102 // Set document size to expand value range.
103 // TODO(bbudge) Refine tests once issues with scrollbar size/value are
104 // worked out. http://code.google.com/p/chromium/issues/detail?id=89367
105 PPBScrollbarDev()->SetDocumentSize(scrollbar, 100);
106 PPBScrollbarDev()->ScrollBy(scrollbar, PP_SCROLLBY_PIXEL, 10);
107 uint32_t value = PPBScrollbarDev()->GetValue(scrollbar);
108 EXPECT(value == 10);
109 PPBCore()->ReleaseResource(scrollbar);
110
111 TEST_PASSED;
112 }
113
114 // Test PPB_Scrollbar_Dev::SetTickMarks(). This only effects scrollbar
115 // appearance, so it should be verified visually.
116 void TestSetTickMarks() {
117 PP_Resource scrollbar = PPBScrollbarDev()->Create(pp_instance(),
118 kVertical);
119 uint32_t thickness = PPBScrollbarDev()->GetThickness(scrollbar);
120 const int32_t kCount = 2;
121 PP_Rect tick_marks[kCount] = {
122 { {0, 0}, {thickness, 1} },
123 { {10, 10}, {thickness, 1} } };
124 PPBScrollbarDev()->SetTickMarks(scrollbar, tick_marks, kCount);
125 // Make sure we can handle an empty array.
126 PPBScrollbarDev()->SetTickMarks(scrollbar, NULL, 0);
127 PPBCore()->ReleaseResource(scrollbar);
128
129 TEST_PASSED;
130 }
131
132 } // namespace
133
134 void SetupTests() {
135 RegisterTest("TestCreate", TestCreate);
136 RegisterTest("TestGetThickness", TestGetThickness);
137 RegisterTest("TestValue", TestValue);
138 RegisterTest("TestSetDocumentSize", TestSetDocumentSize);
139 RegisterTest("TestSetTickMarks", TestSetTickMarks);
140 RegisterTest("TestScrollBy", TestScrollBy);
141 }
142
143 void SetupPluginInterfaces() {
144 }
145
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698