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 |