OLD | NEW |
---|---|
(Empty) | |
1 // Copyright 2016 PDFium 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 // TODO(tsepez) this requires a lot more testing. | |
6 | |
7 #include <stdint.h> | |
8 | |
9 #include "core/fxcodec/jbig2/JBig2_Image.h" | |
10 #include "testing/gtest/include/gtest/gtest.h" | |
11 | |
12 namespace { | |
13 | |
14 const int32_t kWidthPixels = 80; | |
15 const int32_t kWidthBytes = 10; | |
16 const int32_t kStrideBytes = kWidthBytes + 1; // For testing stride != width. | |
17 const int32_t kHeightLines = 20; | |
18 const int32_t kLargerHeightLines = 100; | |
19 const int32_t kTooLargeHeightLines = 40000000; | |
20 | |
21 } // namespace | |
22 | |
23 TEST(fxcodec, JBig2ImageCreate) { | |
24 CJBig2_Image img(kWidthPixels, kHeightLines); | |
25 img.setPixel(0, 0, true); | |
26 img.setPixel(kWidthPixels - 1, kHeightLines - 1, false); | |
27 EXPECT_EQ(kWidthPixels, img.width()); | |
28 EXPECT_EQ(kHeightLines, img.height()); | |
29 EXPECT_TRUE(img.getPixel(0, 0)); | |
30 EXPECT_FALSE(img.getPixel(kWidthPixels - 1, kHeightLines - 1)); | |
31 } | |
32 | |
33 TEST(fxcodec, JBig2ImageCreateTooBig) { | |
34 CJBig2_Image img(kWidthPixels, kTooLargeHeightLines); | |
35 EXPECT_EQ(0, img.width()); | |
36 EXPECT_EQ(0, img.height()); | |
37 EXPECT_EQ(nullptr, img.m_pData); | |
Lei Zhang
2016/08/02 19:36:56
You can also do EXPECT_FALSE(ptr);
| |
38 } | |
39 | |
40 TEST(fxcodec, JBig2ImageCreateExternal) { | |
41 uint8_t buf[kHeightLines * kStrideBytes]; | |
42 CJBig2_Image img(kWidthPixels, kHeightLines, kStrideBytes, buf); | |
43 img.setPixel(0, 0, true); | |
44 img.setPixel(kWidthPixels - 1, kHeightLines - 1, false); | |
45 EXPECT_EQ(kWidthPixels, img.width()); | |
46 EXPECT_EQ(kHeightLines, img.height()); | |
47 EXPECT_TRUE(img.getPixel(0, 0)); | |
48 EXPECT_FALSE(img.getPixel(kWidthPixels - 1, kHeightLines - 1)); | |
49 } | |
50 | |
51 TEST(fxcodec, JBig2ImageCreateExternalTooBig) { | |
52 uint8_t buf[kHeightLines * kStrideBytes]; | |
53 CJBig2_Image img(kWidthPixels, kTooLargeHeightLines, kStrideBytes, buf); | |
54 EXPECT_EQ(0, img.width()); | |
55 EXPECT_EQ(0, img.height()); | |
56 EXPECT_EQ(nullptr, img.m_pData); | |
57 } | |
58 | |
59 TEST(fxcodec, JBig2ImageExpand) { | |
60 CJBig2_Image img(kWidthPixels, kHeightLines); | |
61 img.setPixel(0, 0, true); | |
62 img.setPixel(kWidthPixels - 1, kHeightLines - 1, false); | |
63 img.expand(kLargerHeightLines, true); | |
64 EXPECT_EQ(kWidthPixels, img.width()); | |
65 EXPECT_EQ(kLargerHeightLines, img.height()); | |
66 EXPECT_TRUE(img.getPixel(0, 0)); | |
67 EXPECT_FALSE(img.getPixel(kWidthPixels - 1, kHeightLines - 1)); | |
68 EXPECT_TRUE(img.getPixel(kWidthPixels - 1, kLargerHeightLines - 1)); | |
69 } | |
70 | |
71 TEST(fxcodec, JBig2ImageExpandTooBig) { | |
72 CJBig2_Image img(kWidthPixels, kHeightLines); | |
73 img.setPixel(0, 0, true); | |
74 img.setPixel(kWidthPixels - 1, kHeightLines - 1, false); | |
75 img.expand(kTooLargeHeightLines, true); | |
76 EXPECT_EQ(kWidthPixels, img.width()); | |
77 EXPECT_EQ(kHeightLines, img.height()); | |
78 EXPECT_TRUE(img.getPixel(0, 0)); | |
79 EXPECT_FALSE(img.getPixel(kWidthPixels - 1, kHeightLines - 1)); | |
80 } | |
81 | |
82 TEST(fxcodec, JBig2ImageExpandExternal) { | |
83 uint8_t buf[kHeightLines * kStrideBytes]; | |
84 CJBig2_Image img(kWidthPixels, kHeightLines, kStrideBytes, buf); | |
85 img.setPixel(0, 0, true); | |
86 img.setPixel(kWidthPixels - 1, kHeightLines - 1, false); | |
87 img.expand(kLargerHeightLines, true); | |
88 EXPECT_EQ(kWidthPixels, img.width()); | |
89 EXPECT_EQ(kLargerHeightLines, img.height()); | |
90 EXPECT_TRUE(img.getPixel(0, 0)); | |
91 EXPECT_FALSE(img.getPixel(kWidthPixels - 1, kHeightLines - 1)); | |
92 EXPECT_TRUE(img.getPixel(kWidthPixels - 1, kLargerHeightLines - 1)); | |
93 } | |
94 | |
95 TEST(fxcodec, JBig2ImageExpandExternalTooBig) { | |
96 uint8_t buf[kHeightLines * kStrideBytes]; | |
97 CJBig2_Image img(kWidthPixels, kHeightLines, kStrideBytes, buf); | |
98 img.setPixel(0, 0, true); | |
99 img.setPixel(kWidthPixels - 1, kHeightLines - 1, false); | |
100 img.expand(kTooLargeHeightLines, true); | |
101 EXPECT_EQ(kWidthPixels, img.width()); | |
102 EXPECT_EQ(kHeightLines, img.height()); | |
103 EXPECT_TRUE(img.getPixel(0, 0)); | |
104 EXPECT_FALSE(img.getPixel(kWidthPixels - 1, kHeightLines - 1)); | |
105 } | |
OLD | NEW |