37 uint8_t buffer[] = {0x00, 0x01, 0x02};
38 CFX_GifContextForTest context;
40 context.SetTestInputBuffer({});
44 context.SetTestInputBuffer(
pdfium::make_span(buffer).first(0u));
48 context.SetTestInputBuffer(buffer);
54 CFX_GifContextForTest context;
55 context.SetTestInputBuffer({});
56 EXPECT_FALSE(context.ReadAllOrNone(pdfium::span<uint8_t>()));
58 auto src_buffer =
fxcrt::ToArray<
const uint8_t>(
59 {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09});
61 DataVector<uint8_t> dest_buffer(src_buffer.size());
62 auto dest_span = pdfium::make_span(dest_buffer);
64 context.SetTestInputBuffer(
pdfium::make_span(src_buffer).first(1u));
65 EXPECT_FALSE(context.ReadAllOrNone(dest_buffer));
67 EXPECT_TRUE(context.ReadAllOrNone(dest_span.first(1u)));
68 EXPECT_EQ(src_buffer[0], dest_buffer[0]);
70 context.SetTestInputBuffer(src_buffer);
71 EXPECT_TRUE(context.ReadAllOrNone(dest_span.first(src_buffer.size())));
72 for (size_t i = 0; i < src_buffer.size(); i++) {
73 EXPECT_EQ(src_buffer[i], dest_buffer[i]);
75 context.SetTestInputBuffer(src_buffer);
76 for (size_t i = 0; i < src_buffer.size(); i++) {
77 EXPECT_TRUE(context.ReadAllOrNone(dest_span.first(1u)));
78 EXPECT_EQ(src_buffer[i], dest_buffer[0]);
83 CFX_GifContextForTest context;
86 context.SetTestInputBuffer(
pdfium::make_span(data).first(0u));
89 context.SetTestInputBuffer({});
93 uint8_t data[] = {
'G',
'I',
'F'};
94 context.SetTestInputBuffer(data);
97 context.SetTestInputBuffer({});
100 uint8_t data[] = {
'N',
'O',
'T',
'G',
'I',
'F'};
101 context.SetTestInputBuffer(data);
104 context.SetTestInputBuffer({});
108 uint8_t data[] = {
'G',
'I',
'F',
'8',
'0',
'a'};
109 context.SetTestInputBuffer(data);
112 context.SetTestInputBuffer({});
116 uint8_t data[] = {
'G',
'I',
'F',
'9',
'2',
'a'};
117 context.SetTestInputBuffer(data);
120 context.SetTestInputBuffer({});
124 uint8_t data[] = {
'G',
'I',
'F',
'8',
'7',
'a'};
125 context.SetTestInputBuffer(data);
128 context.SetTestInputBuffer({});
132 uint8_t data[] = {
'G',
'I',
'F',
'8',
'9',
'a'};
133 context.SetTestInputBuffer(data);
136 context.SetTestInputBuffer({});
141 CFX_GifContextForTest context;
144 context.SetTestInputBuffer(
pdfium::make_span(data).first(0u));
147 context.SetTestInputBuffer({});
152 context.SetTestInputBuffer(lsd);
162 context.SetTestInputBuffer({});
168 context.SetTestInputBuffer(lsd);
175 EXPECT_EQ(0x000A, context
.width_);
178 context.SetTestInputBuffer({});
184 context.SetTestInputBuffer(lsd);
190 context.SetTestInputBuffer({});
197 } data = {{0x0A, 0x00, 0x00, 0x0F, 0xA9, 0x01, 0x02},
198 {0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1}};
199 context.SetTestInputBuffer(
pdfium::as_bytes(
pdfium::span_from_ref(data)));
204 EXPECT_EQ(0x000A, context
.width_);
210 EXPECT_EQ(0, memcmp(data.palette, context.global_palette_.data(),
211 sizeof(data.palette)));
212 context.SetTestInputBuffer({});
217 CFX_GifContextForTest context;
221 uint8_t signature[6];
223 } data = {{
'N',
'O',
'T',
'G',
'I',
'F'},
224 {0x0A, 0x00, 0x00, 0x0F, 0x00, 0x01, 0x02}};
225 context.SetTestInputBuffer(
pdfium::as_bytes(
pdfium::span_from_ref(data)));
227 EXPECT_EQ(
sizeof(data.signature), context
.InputBuffer()->GetPosition());
228 context.SetTestInputBuffer({});
232 uint8_t signature[] = {
'G',
'I',
'F',
'8',
'7',
'a'};
233 context.SetTestInputBuffer(signature);
235 EXPECT_EQ(
sizeof(signature), context
.InputBuffer()->GetPosition());
236 context.SetTestInputBuffer({});
241 uint8_t signature[6];
243 } data = {{
'G',
'I',
'F',
'8',
'7',
'a'},
244 {0x0A, 0x00, 0x00, 0x0F, 0x00, 0x01, 0x02}};
245 context.SetTestInputBuffer(
pdfium::as_bytes(
pdfium::span_from_ref(data)));
248 EXPECT_EQ(0x000A, context
.width_);
251 context.SetTestInputBuffer({});
256 uint8_t signature[6];
258 } data = {{
'G',
'I',
'F',
'8',
'7',
'a'},
259 {0x0A, 0x00, 0x00, 0x0F, 0x80, 0x01, 0x02}};
260 context.SetTestInputBuffer(
pdfium::as_bytes(
pdfium::span_from_ref(data)));
262 EXPECT_EQ(
sizeof(data.signature), context
.InputBuffer()->GetPosition());
263 context.SetTestInputBuffer({});
268 uint8_t signature[6];
271 } data = {{
'G',
'I',
'F',
'8',
'7',
'a'},
272 {0x0A, 0x00, 0x00, 0x0F, 0xA9, 0x01, 0x02},
273 {0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1}};
274 context.SetTestInputBuffer(
pdfium::as_bytes(
pdfium::span_from_ref(data)));
277 EXPECT_EQ(0x000A, context
.width_);
283 EXPECT_EQ(0, memcmp(data.palette, context.global_palette_.data(),
284 sizeof(data.palette)));
285 context.SetTestInputBuffer({});
void SetTestInputBuffer(pdfium::span< const uint8_t > input)
CFX_CodecMemory * InputBuffer() const
~CFX_GifContextForTest() override=default
CFX_GifContext(GifDecoder::Delegate *delegate)
uint8_t global_palette_exp_
void SetInputBuffer(RetainPtr< CFX_CodecMemory > codec_memory)
uint8_t global_sort_flag_
GifDecoder::Status ReadHeader()
GifDecoder::Status ReadLogicalScreenDescriptor()
uint8_t global_color_resolution_
GifDecoder::Status ReadGifSignature()