summaryrefslogtreecommitdiffstats
path: root/ppapi/tests/test_pdf.cc
blob: 7b12785e9802ca4255aa7ae4adae488dd987a401 (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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
// 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.

#include "ppapi/tests/test_pdf.h"

#include "ppapi/c/private/ppb_pdf.h"
#include "ppapi/cpp/image_data.h"
#include "ppapi/cpp/point.h"
#include "ppapi/cpp/private/pdf.h"
#include "ppapi/cpp/var.h"
#include "ppapi/tests/testing_instance.h"

REGISTER_TEST_CASE(PDF);

TestPDF::TestPDF(TestingInstance* instance)
    : TestCase(instance) {
}

void TestPDF::RunTests(const std::string& filter) {
  RUN_TEST(GetLocalizedString, filter);
  RUN_TEST(GetResourceImage, filter);
  RUN_TEST(GetV8ExternalSnapshotData, filter);
}

std::string TestPDF::TestGetLocalizedString() {
  pp::Var string = pp::PDF::GetLocalizedString(instance_,
      PP_RESOURCESTRING_PDFGETPASSWORD);
  ASSERT_TRUE(string.is_string());
  ASSERT_EQ("This document is password protected.  Please enter a password.",
            string.AsString());
  PASS();
}

std::string TestPDF::TestGetResourceImage() {
  pp::ImageData data =
      pp::PDF::GetResourceImage(instance_, PP_RESOURCEIMAGE_PDF_BUTTON_ZOOMIN);
  ASSERT_EQ(43, data.size().width());
  ASSERT_EQ(42, data.size().height());
  for (int i = 0; i < data.size().width(); ++i) {
    for (int j = 0; j < data.size().height(); ++j) {
      pp::Point point(i, j);
      ASSERT_NE(0, *data.GetAddr32(point));
    }
  }
  PASS();
}

std::string TestPDF::TestGetV8ExternalSnapshotData() {
  const char* natives_data;
  const char* snapshot_data;
  int natives_size;
  int snapshot_size;

  pp::PDF::GetV8ExternalSnapshotData(instance_, &natives_data, &natives_size,
      &snapshot_data, &snapshot_size);
#ifdef V8_USE_EXTERNAL_STARTUP_DATA
  ASSERT_NE(natives_data, (char*) (NULL));
  ASSERT_NE(natives_size, 0);
  ASSERT_NE(snapshot_data, (char*) (NULL));
  ASSERT_NE(snapshot_size, 0);
#else
  ASSERT_EQ(natives_data, (char*) (NULL));
  ASSERT_EQ(natives_size, 0);
  ASSERT_EQ(snapshot_data, (char*) (NULL));
  ASSERT_EQ(snapshot_size, 0);
#endif
  PASS();
}