| Index: ui/base/resource/resource_bundle_unittest.cc
|
| diff --git a/ui/base/resource/resource_bundle_unittest.cc b/ui/base/resource/resource_bundle_unittest.cc
|
| index 1dcee7a17d9f82ac4b3cb5dad2d6df046f24c37e..f053f57d522d0e6e11ff7f95cb370dc27bc491b9 100644
|
| --- a/ui/base/resource/resource_bundle_unittest.cc
|
| +++ b/ui/base/resource/resource_bundle_unittest.cc
|
| @@ -6,6 +6,7 @@
|
|
|
| #include <stddef.h>
|
| #include <stdint.h>
|
| +#include <string.h>
|
|
|
| #include "base/base_paths.h"
|
| #include "base/big_endian.h"
|
| @@ -270,6 +271,44 @@ TEST_F(ResourceBundleTest, DelegateLoadDataResourceBytes) {
|
| EXPECT_EQ(static_memory, result);
|
| }
|
|
|
| +TEST_F(ResourceBundleTest, LoadDataResourceBytesGzip) {
|
| + base::ScopedTempDir dir;
|
| + ASSERT_TRUE(dir.CreateUniqueTempDir());
|
| + base::FilePath data_path = dir.path().Append(FILE_PATH_LITERAL("sample.pak"));
|
| +
|
| + char kCompressedEntryPakContents[] = {
|
| + 0x04u, 0x00u, 0x00u, 0x00u, // header(version
|
| + 0x01u, 0x00u, 0x00u, 0x00u, // no. entries
|
| + 0x01u, // encoding)
|
| + 0x04u, 0x00u, 0x15u, 0x00u, 0x00u, 0x00u, // index entry 4
|
| + 0x00u, 0x00u, 0x3bu, 0x00u, 0x00u,
|
| + 0x00u, // extra entry for the size of last
|
| + // Entry 4 is a compressed gzip file (with custom leading byte) saying:
|
| + // "This is compressed\n"
|
| + ResourceBundle::CUSTOM_GZIP_HEADER[0], 0x1fu, 0x8bu, 0x08u, 0x00u, 0x00u,
|
| + 0x00u, 0x00u, 0x00u, 0x00u, 0x03u, 0x0bu, 0xc9u, 0xc8u, 0x2cu, 0x56u,
|
| + 0x00u, 0xa2u, 0xe4u, 0xfcu, 0xdcu, 0x82u, 0xa2u, 0xd4u, 0xe2u, 0xe2u,
|
| + 0xd4u, 0x14u, 0x2eu, 0x00u, 0xd9u, 0xf8u, 0xc4u, 0x6fu, 0x13u, 0x00u,
|
| + 0x00u, 0x00u};
|
| +
|
| + size_t compressed_entry_pak_size = sizeof(kCompressedEntryPakContents);
|
| +
|
| + // Dump contents into the pak file.
|
| + ASSERT_EQ(base::WriteFile(data_path, kCompressedEntryPakContents,
|
| + compressed_entry_pak_size), static_cast<int>(compressed_entry_pak_size));
|
| +
|
| + ResourceBundle* resource_bundle = CreateResourceBundle(nullptr);
|
| + resource_bundle->AddDataPackFromPath(data_path, SCALE_FACTOR_NONE);
|
| +
|
| + // Load the compressed resource.
|
| + scoped_refptr<base::RefCountedMemory> result =
|
| + resource_bundle->LoadDataResourceBytes(4);
|
| + EXPECT_EQ(
|
| + strncmp("This is compressed\n",
|
| + reinterpret_cast<const char*>(result->front()), result->size()),
|
| + 0);
|
| +}
|
| +
|
| TEST_F(ResourceBundleTest, DelegateGetRawDataResource) {
|
| MockResourceBundleDelegate delegate;
|
| ResourceBundle* resource_bundle = CreateResourceBundle(&delegate);
|
|
|