1*07fb1d06SElliott Hughes // Copyright 2021 The ChromiumOS Authors
2*07fb1d06SElliott Hughes // Use of this source code is governed by a BSD-style license that can be
3*07fb1d06SElliott Hughes // found in the LICENSE file.
4*07fb1d06SElliott Hughes
5*07fb1d06SElliott Hughes #include "gtest/gtest.h"
6*07fb1d06SElliott Hughes
7*07fb1d06SElliott Hughes #include "puffin/memory_stream.h"
8*07fb1d06SElliott Hughes #include "puffin/src/include/puffin/brotli_util.h"
9*07fb1d06SElliott Hughes #include "puffin/src/puffin_stream.h"
10*07fb1d06SElliott Hughes
11*07fb1d06SElliott Hughes namespace puffin {
12*07fb1d06SElliott Hughes
13*07fb1d06SElliott Hughes namespace {
14*07fb1d06SElliott Hughes
15*07fb1d06SElliott Hughes // echo "puffin test" | xxd -i
16*07fb1d06SElliott Hughes const Buffer kTestString = {0x70, 0x75, 0x66, 0x66, 0x69, 0x6e,
17*07fb1d06SElliott Hughes 0x20, 0x74, 0x65, 0x73, 0x74, 0x0a};
18*07fb1d06SElliott Hughes } // namespace
19*07fb1d06SElliott Hughes
TEST(BrotliUtilTest,CompressAndDecompressTest)20*07fb1d06SElliott Hughes TEST(BrotliUtilTest, CompressAndDecompressTest) {
21*07fb1d06SElliott Hughes Buffer compressed;
22*07fb1d06SElliott Hughes ASSERT_TRUE(BrotliEncode(kTestString.data(), kTestString.size(),
23*07fb1d06SElliott Hughes MemoryStream::CreateForWrite(&compressed)));
24*07fb1d06SElliott Hughes ASSERT_FALSE(compressed.empty());
25*07fb1d06SElliott Hughes
26*07fb1d06SElliott Hughes Buffer decompressed;
27*07fb1d06SElliott Hughes ASSERT_TRUE(BrotliDecode(compressed.data(), compressed.size(),
28*07fb1d06SElliott Hughes MemoryStream::CreateForWrite(&decompressed)));
29*07fb1d06SElliott Hughes ASSERT_EQ(kTestString, decompressed);
30*07fb1d06SElliott Hughes }
31*07fb1d06SElliott Hughes
32*07fb1d06SElliott Hughes } // namespace puffin
33