blob: 17e5560168820ea380a2a62a27477e51f130f166 [file] [log] [blame]
Avi Drissman3e1a26c2022-09-15 20:26:031// Copyright 2021 The Chromium Authors
Wei Lee6fc33ef42021-05-25 08:36:262// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ui/gfx/image/buffer_w_stream.h"
6
7#include <stdint.h>
Peter Kastinge10dd2e52025-01-28 00:26:128
Wei Lee6fc33ef42021-05-25 08:36:269#include <algorithm>
10#include <vector>
11
Wei Lee6fc33ef42021-05-25 08:36:2612#include "testing/gtest/include/gtest/gtest.h"
13
14namespace gfx {
15namespace {
16
17using BufferWStreamTest = testing::Test;
18
19TEST(BufferWStreamTest, WriteBuffer) {
20 BufferWStream stream;
21
22 std::vector<uint8_t> buffer;
23 for (uint8_t i = 0; i < 10; i++) {
24 buffer.push_back(i);
25 }
26 ASSERT_TRUE(stream.write(buffer.data(), buffer.size()));
27 std::vector<uint8_t> buffer_from_stream = stream.TakeBuffer();
Peter Kastinge10dd2e52025-01-28 00:26:1228 EXPECT_TRUE(std::ranges::equal(buffer, buffer_from_stream));
Wei Lee6fc33ef42021-05-25 08:36:2629
30 std::vector<uint8_t> buffer2;
31 for (uint8_t i = 5; i > 0; i--) {
32 buffer2.push_back(i);
33 }
34
35 // Checks that the stream is cleared after TakeBuffer() so that it won't
36 // contain old data.
37 ASSERT_TRUE(stream.write(buffer2.data(), buffer2.size()));
38 buffer_from_stream = stream.TakeBuffer();
Peter Kastinge10dd2e52025-01-28 00:26:1239 EXPECT_TRUE(std::ranges::equal(buffer2, buffer_from_stream));
Wei Lee6fc33ef42021-05-25 08:36:2640
41 // Checks that calling write() twice works expectedly.
42 ASSERT_TRUE(stream.write(buffer.data(), buffer.size()));
43 ASSERT_TRUE(stream.write(buffer2.data(), buffer2.size()));
44 buffer_from_stream = stream.TakeBuffer();
Peter Kastinge10dd2e52025-01-28 00:26:1245 EXPECT_TRUE(std::ranges::equal(buffer.begin(), buffer.end(),
46 buffer_from_stream.begin(),
47 buffer_from_stream.begin() + buffer.size()));
48 EXPECT_TRUE(std::ranges::equal(buffer2.begin(), buffer2.end(),
49 buffer_from_stream.begin() + buffer.size(),
50 buffer_from_stream.end()));
Wei Lee6fc33ef42021-05-25 08:36:2651}
52
53} // namespace
54} // namespace gfx