summaryrefslogtreecommitdiffstats
path: root/ui/base/resource/data_pack_unittest.cc
diff options
context:
space:
mode:
authorben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-20 23:19:46 +0000
committerben@chromium.org <ben@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-20 23:19:46 +0000
commit42ce29d4f464b36ddaebefb6d6c33e7418e93141 (patch)
tree0d0a4965d61ef1514dee70c9f2507529d8c5b178 /ui/base/resource/data_pack_unittest.cc
parent0ffeb598304f119e2d3df70d47a592d2dbc722da (diff)
downloadchromium_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.cc76
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