Upstream version 11.40.277.0
[platform/framework/web/crosswalk.git] / src / content / test / plugin / plugin_geturl_test.h
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
3 // found in the LICENSE file.
4
5 #ifndef CONTENT_TEST_PLUGIN_PLUGIN_GETURL_TEST_H_
6 #define CONTENT_TEST_PLUGIN_PLUGIN_GETURL_TEST_H_
7
8 #include <stdio.h>
9
10 #include "base/compiler_specific.h"
11 #include "content/test/plugin/plugin_test.h"
12
13 namespace NPAPIClient {
14
15 // The PluginGetURLTest test functionality of the NPN_GetURL
16 // and NPN_GetURLNotify methods.
17 //
18 // This test first discovers it's URL by sending a GetURL request
19 // for 'javascript:top.location'.  After receiving that, the
20 // test will request the url itself (again via GetURL).
21 class PluginGetURLTest : public PluginTest {
22  public:
23   // Constructor.
24   PluginGetURLTest(NPP id, NPNetscapeFuncs *host_functions);
25   ~PluginGetURLTest() override;
26
27   //
28   // NPAPI functions
29   //
30   NPError New(uint16 mode,
31               int16 argc,
32               const char* argn[],
33               const char* argv[],
34               NPSavedData* saved) override;
35   NPError SetWindow(NPWindow* pNPWindow) override;
36   NPError NewStream(NPMIMEType type,
37                     NPStream* stream,
38                     NPBool seekable,
39                     uint16* stype) override;
40   int32 WriteReady(NPStream* stream) override;
41   int32 Write(NPStream* stream, int32 offset, int32 len, void* buffer) override;
42   NPError DestroyStream(NPStream* stream, NPError reason) override;
43   void StreamAsFile(NPStream* stream, const char* fname) override;
44   void URLNotify(const char* url, NPReason reason, void* data) override;
45   void URLRedirectNotify(const char* url,
46                          int32_t status,
47                          void* notify_data) override;
48
49  private:
50   bool tests_started_;
51   int tests_in_progress_;
52   std::string self_url_;
53   FILE* test_file_;
54   bool expect_404_response_;
55   // This flag is set to true in the context of the NPN_Evaluate call.
56   bool npn_evaluate_context_;
57   // The following two flags handle URL redirect notifications received by
58   // plugins.
59   bool handle_url_redirects_;
60   bool received_url_redirect_cancel_notification_;
61   bool received_url_redirect_allow_notification_;
62   std::string page_not_found_url_;
63   std::string fail_write_url_;
64   std::string referrer_target_url_;
65   bool check_cookies_;
66 };
67
68 }  // namespace NPAPIClient
69
70 #endif  // CONTENT_TEST_PLUGIN_PLUGIN_GETURL_TEST_H_