diff options
author | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-20 23:19:46 +0000 |
---|---|---|
committer | ben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-20 23:19:46 +0000 |
commit | 42ce29d4f464b36ddaebefb6d6c33e7418e93141 (patch) | |
tree | 0d0a4965d61ef1514dee70c9f2507529d8c5b178 /ui/base/resource/data_pack_unittest.cc | |
parent | 0ffeb598304f119e2d3df70d47a592d2dbc722da (diff) | |
download | chromium_src-42ce29d4f464b36ddaebefb6d6c33e7418e93141.zip chromium_src-42ce29d4f464b36ddaebefb6d6c33e7418e93141.tar.gz chromium_src-42ce29d4f464b36ddaebefb6d6c33e7418e93141.tar.bz2 |
Move ResourceBundle, DataPack to ui/base
BUG=none
TEST=none
TBR=brettw
Review URL: http://codereview.chromium.org/6263008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72038 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/base/resource/data_pack_unittest.cc')
-rw-r--r-- | ui/base/resource/data_pack_unittest.cc | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/ui/base/resource/data_pack_unittest.cc b/ui/base/resource/data_pack_unittest.cc new file mode 100644 index 0000000..fb15a07 --- /dev/null +++ b/ui/base/resource/data_pack_unittest.cc @@ -0,0 +1,76 @@ +// Copyright (c) 2011 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "base/file_path.h" +#include "base/file_util.h" +#include "base/path_service.h" +#include "base/scoped_temp_dir.h" +#include "base/string_piece.h" +#include "testing/gtest/include/gtest/gtest.h" +#include "ui/base/resource/data_pack.h" + +namespace ui { + +TEST(DataPackTest, Load) { + FilePath data_path; + PathService::Get(base::DIR_SOURCE_ROOT, &data_path); + data_path = data_path.Append( + FILE_PATH_LITERAL("app/test/data/data_pack_unittest/sample.pak")); + + DataPack pack; + ASSERT_TRUE(pack.Load(data_path)); + + base::StringPiece data; + ASSERT_TRUE(pack.GetStringPiece(4, &data)); + EXPECT_EQ("this is id 4", data); + ASSERT_TRUE(pack.GetStringPiece(6, &data)); + EXPECT_EQ("this is id 6", data); + + // Try reading zero-length data blobs, just in case. + ASSERT_TRUE(pack.GetStringPiece(1, &data)); + EXPECT_EQ(0U, data.length()); + ASSERT_TRUE(pack.GetStringPiece(10, &data)); + EXPECT_EQ(0U, data.length()); + + // Try looking up an invalid key. + ASSERT_FALSE(pack.GetStringPiece(140, &data)); +} + +TEST(DataPackTest, Write) { + ScopedTempDir dir; + ASSERT_TRUE(dir.CreateUniqueTempDir()); + FilePath file = dir.path().Append(FILE_PATH_LITERAL("data.pak")); + + std::string one("one"); + std::string two("two"); + std::string three("three"); + std::string four("four"); + std::string fifteen("fifteen"); + + std::map<uint32, base::StringPiece> resources; + resources.insert(std::make_pair(1, base::StringPiece(one))); + resources.insert(std::make_pair(2, base::StringPiece(two))); + resources.insert(std::make_pair(15, base::StringPiece(fifteen))); + resources.insert(std::make_pair(3, base::StringPiece(three))); + resources.insert(std::make_pair(4, base::StringPiece(four))); + ASSERT_TRUE(DataPack::WritePack(file, resources)); + + // Now try to read the data back in. + DataPack pack; + ASSERT_TRUE(pack.Load(file)); + + base::StringPiece data; + ASSERT_TRUE(pack.GetStringPiece(1, &data)); + EXPECT_EQ(one, data); + ASSERT_TRUE(pack.GetStringPiece(2, &data)); + EXPECT_EQ(two, data); + ASSERT_TRUE(pack.GetStringPiece(3, &data)); + EXPECT_EQ(three, data); + ASSERT_TRUE(pack.GetStringPiece(4, &data)); + EXPECT_EQ(four, data); + ASSERT_TRUE(pack.GetStringPiece(15, &data)); + EXPECT_EQ(fifteen, data); +} + +} // namespace ui |