Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Unified Diff: chrome/browser/chromeos/gdata/gdata_db_unittest.cc

Issue 10168025: GDataDB support with leveldb. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/gdata/gdata_db_unittest.cc
===================================================================
--- chrome/browser/chromeos/gdata/gdata_db_unittest.cc (revision 0)
+++ chrome/browser/chromeos/gdata/gdata_db_unittest.cc (revision 0)
@@ -0,0 +1,137 @@
+// Copyright (c) 2012 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 "chrome/browser/chromeos/gdata/gdata_db.h"
+
+#include "chrome/browser/chromeos/gdata/gdata_files.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "chrome/test/base/testing_profile.h"
+
+namespace gdata {
+namespace {
+
+class GDataDBTest : public testing::Test {
+ public:
+ GDataDBTest() {
+ }
+
+ virtual ~GDataDBTest() {
+ }
+
+ protected:
+ virtual void SetUp() OVERRIDE;
+
+ void TestGetNotFound(const std::string& file_name,
+ const std::string& resource_id);
+
+ void TestGetFound(const std::string& file_name,
+ const std::string& resource_id,
+ const GURL& content_url);
+
+ scoped_ptr<TestingProfile> profile_;
+ scoped_ptr<GDataDB> gdata_db_;
+};
+
+void GDataDBTest::SetUp() {
+ profile_.reset(new TestingProfile());
+ gdata_db_ = GDataDB::Create(profile_->GetPath().Append("testdb"));
+}
+
+void GDataDBTest::TestGetNotFound(const std::string& file_name,
+ const std::string& resource_id) {
+ scoped_ptr<GDataEntry> entry;
+ GDataDB::Status status = gdata_db_->GetByPath(file_name, &entry);
+ EXPECT_EQ(GDataDB::DB_NOT_FOUND, status);
+ EXPECT_FALSE(entry.get());
+
+ status = gdata_db_->GetByResourceId(resource_id, &entry);
+ EXPECT_EQ(GDataDB::DB_NOT_FOUND, status);
+ EXPECT_FALSE(entry.get());
+}
+
+void GDataDBTest::TestGetFound(const std::string& file_name,
+ const std::string& resource_id,
+ const GURL& content_url) {
+ scoped_ptr<GDataEntry> entry;
+ GDataDB::Status status = gdata_db_->GetByPath(file_name, &entry);
+ EXPECT_EQ(GDataDB::DB_OK, status);
+ ASSERT_TRUE(entry.get());
+ EXPECT_EQ(file_name, entry->file_name());
+ EXPECT_EQ(resource_id, entry->resource_id());
+ EXPECT_EQ(content_url, entry->content_url());
+ entry.reset();
+
+ status = gdata_db_->GetByResourceId(resource_id, &entry);
+ EXPECT_EQ(GDataDB::DB_OK, status);
+ ASSERT_TRUE(entry.get());
+ EXPECT_EQ(file_name, entry->file_name());
+ EXPECT_EQ(resource_id, entry->resource_id());
+ EXPECT_EQ(content_url, entry->content_url());
+}
+
+} // namespace
+
+TEST_F(GDataDBTest, FileTest) {
+ GDataFile file1(NULL, NULL);
+ const std::string file_name1("/gdata/dir1/file1");
+ const std::string resource_id1("abcd");
+ const GURL content_url1("http://content/dir1/file1");
+ const std::string file_md51("ijkl");
+ base::PlatformFileInfo file_info;
+ file_info.is_directory = false;
+ file1.set_file_name(file_name1);
+ file1.set_file_info(file_info);
+ file1.set_resource_id(resource_id1);
+ file1.set_content_url(content_url1);
+ file1.set_file_md5(file_md51);
+
+ TestGetNotFound(file_name1, resource_id1);
+
+ GDataDB::Status status = gdata_db_->Put(file1);
+ EXPECT_EQ(GDataDB::DB_OK, status);
+
+ TestGetFound(file_name1, resource_id1, content_url1);
+
+ scoped_ptr<GDataEntry> entry;
+ gdata_db_->GetByPath(file_name1, &entry);
+ EXPECT_EQ(file_md51, entry->AsGDataFile()->file_md5());
+
+ status = gdata_db_->DeleteByPath(file_name1);
+ EXPECT_EQ(GDataDB::DB_OK, status);
+
+ TestGetNotFound(file_name1, resource_id1);
+}
+
+TEST_F(GDataDBTest, DirTest) {
+ GDataDirectory dir1(NULL, NULL);
+ const std::string dir_name1("/gdata/dir1");
+ const std::string dir_resource_id1("efgh");
+ const GURL dir_content_url1("http://content/dir1");
+ const GURL upload_url1("http://upload/dir1");
+ base::PlatformFileInfo dir_info;
+ dir_info.is_directory = true;
+ dir1.set_file_name(dir_name1);
+ dir1.set_file_info(dir_info);
+ dir1.set_resource_id(dir_resource_id1);
+ dir1.set_content_url(dir_content_url1);
+ dir1.set_upload_url(upload_url1);
+
+ TestGetNotFound(dir_name1, dir_resource_id1);
+
+ GDataDB::Status status = gdata_db_->Put(dir1);
+ EXPECT_EQ(GDataDB::DB_OK, status);
+
+ TestGetFound(dir_name1, dir_resource_id1, dir_content_url1);
+
+ scoped_ptr<GDataEntry> entry;
+ gdata_db_->GetByPath(dir_name1, &entry);
+ EXPECT_EQ(upload_url1, entry->AsGDataDirectory()->upload_url());
+
+ status = gdata_db_->DeleteByPath(dir_name1);
+ EXPECT_EQ(GDataDB::DB_OK, status);
+
+ TestGetNotFound(dir_name1, dir_resource_id1);
+}
+
+} // namespace gdata
Property changes on: chrome/browser/chromeos/gdata/gdata_db_unittest.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698