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

Side by Side Diff: webkit/glue/plugins/test/plugin_test.h

Issue 6012002: Move the NPAPI files from webkit/glue/plugins to webkit/plugins/npapi and put... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 10 years 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 | « webkit/glue/plugins/test/plugin_setup_test.cc ('k') | webkit/glue/plugins/test/plugin_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2010 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 #ifndef WEBKIT_PORT_PLUGINS_TEST_PLUGIN_TEST_H_
6 #define WEBKIT_PORT_PLUGINS_TEST_PLUGIN_TEST_H_
7
8 #include <string>
9
10 #include "base/string_number_conversions.h"
11 #include "base/string_util.h"
12 #include "third_party/npapi/bindings/npapi.h"
13 #include "third_party/npapi/bindings/nphostapi.h"
14
15 namespace NPAPIClient {
16
17 // A PluginTest represents an instance of the plugin, which in
18 // our case is a test case.
19 class PluginTest {
20 public:
21 // Constructor.
22 PluginTest(NPP id, NPNetscapeFuncs *host_functions);
23
24 // Destructor
25 virtual ~PluginTest() {}
26
27 // Returns true if the test runs in windowless plugin mode.
28 virtual bool IsWindowless() const { return false; }
29
30 //
31 // NPAPI Functions
32 //
33 virtual NPError New(uint16 mode, int16 argc, const char* argn[],
34 const char* argv[], NPSavedData* saved);
35 virtual NPError Destroy();
36 virtual NPError SetWindow(NPWindow* pNPWindow);
37 virtual NPError NewStream(NPMIMEType type, NPStream* stream,
38 NPBool seekable, uint16* stype);
39 virtual int32 WriteReady(NPStream *stream);
40 virtual int32 Write(NPStream *stream, int32 offset, int32 len,
41 void *buffer);
42 virtual NPError DestroyStream(NPStream *stream, NPError reason);
43 virtual void StreamAsFile(NPStream* stream, const char* fname);
44 virtual void URLNotify(const char* url, NPReason reason, void* data);
45 virtual int16 HandleEvent(void* event);
46 virtual void URLRedirectNotify(const char* url, int32_t status,
47 void* notify_data);
48 // Returns true if the test has not had any errors.
49 bool Succeeded() { return test_status_.length() == 0; }
50
51 // Sets an error for the test case. Appends the msg to the
52 // error that will be returned from the test.
53 void SetError(const std::string &msg);
54
55 // Expect two string values are equal, and if not, logs an
56 // appropriate error about it.
57 void ExpectStringLowerCaseEqual(const std::string &val1, const std::string &va l2) {
58 if (!LowerCaseEqualsASCII(val1, val2.c_str())) {
59 std::string err;
60 err = "Expected Equal for '";
61 err.append(val1);
62 err.append("' and '");
63 err.append(val2);
64 err.append("'");
65 SetError(err);
66 }
67 };
68
69 // Expect two values to not be equal, and if they are
70 // logs an appropriate error about it.
71 void ExpectAsciiStringNotEqual(const char *val1, const char *val2) {
72 if (val1 == val2) {
73 std::string err;
74 err = "Expected Not Equal for '";
75 err.append(val1);
76 err.append("' and '");
77 err.append(val2);
78 err.append("'");
79 SetError(err);
80 }
81 }
82 // Expect two integer values are equal, and if not, logs an
83 // appropriate error about it.
84 void ExpectIntegerEqual(int val1, int val2) {
85 if (val1 != val2) {
86 std::string err;
87 err = "Expected Equal for '";
88 err.append(base::IntToString(val1));
89 err.append("' and '");
90 err.append(base::IntToString(val2));
91 err.append("'");
92 SetError(err);
93 }
94 }
95
96
97 protected:
98 // Signals to the Test that invoked us that the test is
99 // completed. This is done by forcing the plugin to
100 // set a cookie in the browser window, which the test program
101 // is waiting for. Note - because this is done by
102 // using javascript, the browser must have the frame
103 // setup before the plugin calls this function. So plugin
104 // tests MUST NOT call this function prior to having
105 // received the SetWindow() callback from the browser.
106 void SignalTestCompleted();
107
108 // Helper function to lookup names in the input array.
109 // If the name is found, returns the value, otherwise
110 // returns NULL.
111 const char *GetArgValue(const char *name, const int16 argc,
112 const char *argn[], const char *argv[]);
113
114 // Access to the list of functions provided
115 // by the NPAPI host.
116 NPNetscapeFuncs *HostFunctions() { return host_functions_; }
117
118 // The NPP Identifier for this plugin instance.
119 NPP id() { return id_; }
120 std::string test_id() const { return test_id_; }
121 std::string test_name() const { return test_name_; }
122 bool test_completed() const { return test_completed_; }
123 private:
124 NPP id_;
125 NPNetscapeFuncs * host_functions_;
126 std::string test_name_;
127 std::string test_id_;
128 std::string test_status_;
129 bool test_completed_;
130 };
131
132 } // namespace NPAPIClient
133
134 #endif // WEBKIT_PORT_PLUGINS_TEST_PLUGIN_TEST_H_
OLDNEW
« no previous file with comments | « webkit/glue/plugins/test/plugin_setup_test.cc ('k') | webkit/glue/plugins/test/plugin_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698