summaryrefslogtreecommitdiffstats
path: root/ppapi/tests/test_url_request.h
blob: 6e4bdae169bdb860779254bd417b84fffdc230a9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef PAPPI_TESTS_TEST_URL_REQUEST_H_
#define PAPPI_TESTS_TEST_URL_REQUEST_H_

#include <string>

#include "ppapi/c/ppb_core.h"
#include "ppapi/c/ppb_url_loader.h"
#include "ppapi/c/ppb_url_request_info.h"
#include "ppapi/c/ppb_url_response_info.h"
#include "ppapi/c/ppb_var.h"
#include "ppapi/tests/test_case.h"

class TestURLRequest : public TestCase {
 public:
  explicit TestURLRequest(TestingInstance* instance);
  ~TestURLRequest() { ppb_core_interface_->ReleaseResource(url_loader_); }

  // TestCase implementation.
  virtual bool Init();
  virtual void RunTests(const std::string& filter);

 private:
  std::string TestCreateAndIsURLRequestInfo();
  std::string TestSetProperty();
  std::string TestAppendDataToBody();
  std::string TestStress();

  // Helpers.
  PP_Var PP_MakeString(const char* s);
  std::string LoadAndCompareBody(PP_Resource url_request,
                                 const std::string& expected_body);

  const PPB_URLRequestInfo* ppb_url_request_interface_;
  const PPB_URLLoader* ppb_url_loader_interface_;
  const PPB_URLResponseInfo* ppb_url_response_interface_;
  const PPB_Core* ppb_core_interface_;
  const PPB_Var* ppb_var_interface_;

  PP_Resource url_loader_;
};

#endif  // PAPPI_TESTS_TEST_URL_REQUEST_H_