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

Side by Side Diff: ppapi/tests/test_case.h

Issue 7312008: Porting ppapi_tests framework to postMessage. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Disable Scrollbar test on Mac for now, merge Created 9 years, 5 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
« no previous file with comments | « ppapi/proxy/ppb_instance_proxy.cc ('k') | ppapi/tests/test_case.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef PPAPI_TESTS_TEST_CASE_H_ 5 #ifndef PPAPI_TESTS_TEST_CASE_H_
6 #define PPAPI_TESTS_TEST_CASE_H_ 6 #define PPAPI_TESTS_TEST_CASE_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 #include <limits> 9 #include <limits>
10 #include <string> 10 #include <string>
11 11
12 #include "ppapi/c/pp_resource.h" 12 #include "ppapi/c/pp_resource.h"
13 #include "ppapi/cpp/dev/scrollbar_dev.h" 13 #include "ppapi/cpp/dev/scrollbar_dev.h"
14
15 #if (defined __native_client__)
14 #include "ppapi/cpp/var.h" 16 #include "ppapi/cpp/var.h"
17 #else
18 #include "ppapi/cpp/private/var_private.h"
19 #endif
15 20
16 struct PPB_Testing_Dev; 21 struct PPB_Testing_Dev;
17 class TestingInstance; 22 class TestingInstance;
18 23
19 namespace pp { 24 namespace pp {
20 namespace deprecated { 25 namespace deprecated {
21 class ScriptableObject; 26 class ScriptableObject;
22 } 27 }
23 } 28 }
24 29
25 // Individual classes of tests derive from this generic test case. 30 // Individual classes of tests derive from this generic test case.
26 class TestCase { 31 class TestCase {
27 public: 32 public:
28 explicit TestCase(TestingInstance* instance); 33 explicit TestCase(TestingInstance* instance);
29 virtual ~TestCase(); 34 virtual ~TestCase();
30 35
31 // Optionally override to do testcase specific initialization. 36 // Optionally override to do testcase specific initialization.
32 virtual bool Init() { return true; } 37 virtual bool Init() { return true; }
33 38
34 // Override to implement the test. It will be called after the plugin is 39 // Override to implement the test. It will be called after the plugin is
35 // first displayed. 40 // first displayed.
36 virtual void RunTest() = 0; 41 virtual void RunTest() = 0;
37 42
38 static std::string MakeFailureMessage(const char* file, int line, 43 static std::string MakeFailureMessage(const char* file, int line,
39 const char* cmd); 44 const char* cmd);
40 45
46 #if !(defined __native_client__)
41 // Returns the scriptable test object for the current test, if any. 47 // Returns the scriptable test object for the current test, if any.
42 // Internally, this uses CreateTestObject which each test overrides. 48 // Internally, this uses CreateTestObject which each test overrides.
43 pp::Var GetTestObject(); 49 pp::VarPrivate GetTestObject();
50 #endif
44 51
45 // A function that is invoked whenever HandleMessage is called on the 52 // A function that is invoked whenever HandleMessage is called on the
46 // associated TestingInstance. Default implementation does nothing. TestCases 53 // associated TestingInstance. Default implementation does nothing. TestCases
47 // that want to handle incoming postMessage events should override this 54 // that want to handle incoming postMessage events should override this
48 // method. 55 // method.
49 virtual void HandleMessage(const pp::Var& message_data); 56 virtual void HandleMessage(const pp::Var& message_data);
50 57
51 protected: 58 protected:
59 #if !(defined __native_client__)
52 // Overridden by each test to supply a ScriptableObject corresponding to the 60 // Overridden by each test to supply a ScriptableObject corresponding to the
53 // test. There can only be one object created for all test in a given class 61 // test. There can only be one object created for all test in a given class
54 // so be sure your object is designed to be re-used. 62 // so be sure your object is designed to be re-used.
55 // 63 //
56 // This object should be created on the heap. Ownership will be passed to the 64 // This object should be created on the heap. Ownership will be passed to the
57 // caller. Return NULL if there is no supported test object (the default). 65 // caller. Return NULL if there is no supported test object (the default).
58 virtual pp::deprecated::ScriptableObject* CreateTestObject(); 66 virtual pp::deprecated::ScriptableObject* CreateTestObject();
67 #endif
59 68
60 // Initializes the testing interface. 69 // Initializes the testing interface.
61 bool InitTestingInterface(); 70 bool InitTestingInterface();
62 71
63 // Makes sure the test is run over HTTP. 72 // Makes sure the test is run over HTTP.
64 bool EnsureRunningOverHTTP(); 73 bool EnsureRunningOverHTTP();
65 74
66 // Pointer to the instance that owns us. 75 // Pointer to the instance that owns us.
67 TestingInstance* instance_; 76 TestingInstance* instance_;
68 77
69 // NULL unless InitTestingInterface is called. 78 // NULL unless InitTestingInterface is called.
70 const PPB_Testing_Dev* testing_interface_; 79 const PPB_Testing_Dev* testing_interface_;
71 80
72 // Force asynchronous completion of any operation taking a callback. 81 // Force asynchronous completion of any operation taking a callback.
73 bool force_async_; 82 bool force_async_;
74 83
75 private: 84 private:
85 #if !(defined __native_client__)
76 // Holds the test object, if any was retrieved from CreateTestObject. 86 // Holds the test object, if any was retrieved from CreateTestObject.
77 pp::Var test_object_; 87 pp::VarPrivate test_object_;
88 #endif
78 }; 89 };
79 90
80 // This class is an implementation detail. 91 // This class is an implementation detail.
81 class TestCaseFactory { 92 class TestCaseFactory {
82 public: 93 public:
83 typedef TestCase* (*Method)(TestingInstance* instance); 94 typedef TestCase* (*Method)(TestingInstance* instance);
84 95
85 TestCaseFactory(const char* name, Method method) 96 TestCaseFactory(const char* name, Method method)
86 : next_(head_), 97 : next_(head_),
87 name_(name), 98 name_(name),
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 #define ASSERT_FALSE(cmd) ASSERT_TRUE(!(cmd)) 153 #define ASSERT_FALSE(cmd) ASSERT_TRUE(!(cmd))
143 #define ASSERT_EQ(a, b) ASSERT_TRUE((a) == (b)) 154 #define ASSERT_EQ(a, b) ASSERT_TRUE((a) == (b))
144 #define ASSERT_NE(a, b) ASSERT_TRUE((a) != (b)) 155 #define ASSERT_NE(a, b) ASSERT_TRUE((a) != (b))
145 156
146 #define ASSERT_DOUBLE_EQ(a, b) ASSERT_TRUE( \ 157 #define ASSERT_DOUBLE_EQ(a, b) ASSERT_TRUE( \
147 std::fabs((a)-(b)) <= std::numeric_limits<double>::epsilon()) 158 std::fabs((a)-(b)) <= std::numeric_limits<double>::epsilon())
148 159
149 #define PASS() return std::string() 160 #define PASS() return std::string()
150 161
151 #endif // PPAPI_TESTS_TEST_CASE_H_ 162 #endif // PPAPI_TESTS_TEST_CASE_H_
OLDNEW
« no previous file with comments | « ppapi/proxy/ppb_instance_proxy.cc ('k') | ppapi/tests/test_case.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698