17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved.
27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Use of this source code is governed by a BSD-style license that can be
37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// found in the LICENSE file.
47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
5ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#ifndef CONTENT_TEST_PLUGIN_PLUGIN_REQUEST_READ_TEST_H_
6ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#define CONTENT_TEST_PLUGIN_PLUGIN_REQUEST_READ_TEST_H_
77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <string>
97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <vector>
107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include "base/compiler_specific.h"
12ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#include "content/test/plugin/plugin_test.h"
137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochnamespace NPAPIClient {
157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// Tests whether the browser correctly handles single range requests from NPAPI
177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch// plugins.
187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochclass PluginRequestReadTest : public PluginTest {
197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch public:
207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  PluginRequestReadTest(NPP id, NPNetscapeFuncs* host_functions);
217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual ~PluginRequestReadTest();
227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  //
247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  // NPAPI Functions
257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  //
267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual NPError New(uint16 mode, int16 argc, const char* argn[],
277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                      const char* argv[], NPSavedData* saved) OVERRIDE;
287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual NPError SetWindow(NPWindow* window) OVERRIDE;
297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual NPError NewStream(NPMIMEType type, NPStream* stream,
307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                            NPBool seekable, uint16* stream_type) OVERRIDE;
317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual NPError DestroyStream(NPStream *stream, NPError reason) OVERRIDE;
327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual int32 WriteReady(NPStream* stream) OVERRIDE;
337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  virtual int32 Write(NPStream* stream, int32 offset, int32 len,
347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch                      void* buffer) OVERRIDE;
357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch private:
377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  // Tracks ranges, which we requested, but for which we did not get response.
387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  std::vector<NPByteRange> requested_ranges_;
397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  std::string url_to_request_;
407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  bool tests_started_;
417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch  bool read_requested_;
427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch};
437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch}  // namespace NPAPIClient
457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
46ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch#endif  // CONTENT_TEST_PLUGIN_PLUGIN_REQUEST_READ_TEST_H_
477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch
48