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.
5 #ifndef CONTENT_TEST_PLUGIN_PLUGIN_GETURL_TEST_H_
6 #define CONTENT_TEST_PLUGIN_PLUGIN_GETURL_TEST_H_
10 #include "base/compiler_specific.h"
11 #include "content/test/plugin/plugin_test.h"
13 namespace NPAPIClient
{
15 // The PluginGetURLTest test functionality of the NPN_GetURL
16 // and NPN_GetURLNotify methods.
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
{
24 PluginGetURLTest(NPP id
, NPNetscapeFuncs
*host_functions
);
25 ~PluginGetURLTest() override
;
30 NPError
New(uint16 mode
,
34 NPSavedData
* saved
) override
;
35 NPError
SetWindow(NPWindow
* pNPWindow
) override
;
36 NPError
NewStream(NPMIMEType type
,
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
,
47 void* notify_data
) override
;
51 int tests_in_progress_
;
52 std::string self_url_
;
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
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_
;
68 } // namespace NPAPIClient
70 #endif // CONTENT_TEST_PLUGIN_PLUGIN_GETURL_TEST_H_