Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(76)

Unified Diff: gears/base/common/database2_versions_table_test.cc

Issue 800: Database2Versions table, get/set version operations implemented (Closed) SVN Base: http://google-gears.googlecode.com/svn/contrib/dimitri.glazkov/database2/
Patch Set: Created 3 months, 1 week ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side by-side-diff with in-line comments
Download patch
Index: gears/base/common/database2_versions_table_test.cc
===================================================================
--- gears/base/common/database2_versions_table_test.cc (revision 0)
+++ gears/base/common/database2_versions_table_test.cc (revision 0)
@@ -0,0 +1,80 @@
+// Copyright 2008, Google Inc.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice,
+// this list of conditions and the following disclaimer.
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+// 3. Neither the name of Google Inc. nor the names of its contributors may be
+// used to endorse or promote products derived from this software without
+// specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
+// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#include "gears/base/common/database2_versions_table.h"
+#include "gears/base/common/sqlite_wrapper.h"
+
+static const std::string16 kTestOrigin(STRING16(L"unittest.foo.example.com"));
+static const std::string16 kTestName(STRING16(L"unittest"));
+
+bool TestDatabase2VersionsTable() {
+#undef TEST_ASSERT
+#define TEST_ASSERT(b) \
+{ \
+ if (!(b)) { \
+ LOG(("TestDatabase2VersionsTable - failed (%d)\n", __LINE__)); \
+ return false; \
+ } \
+}
+ SQLDatabase db;
+
+ // create test database
+ TEST_ASSERT(db.Open(STRING16(L"TestDatabase2VersionsTable.db")));
+ TEST_ASSERT(db.DropAllObjects());
+
+ // create table
+ Database2VersionsTable table(&db);
+ TEST_ASSERT(table.MaybeCreateTableLatestVersion());
+
+ // set version
+ std::string16 versionIn(L"1.0");
+ TEST_ASSERT(table.SetVersion(kTestOrigin, kTestName, versionIn));
+
+ std::string16 versionOut;
+ bool found;
+
+ // read version
+ TEST_ASSERT(table.GetVersion(kTestOrigin, kTestName, &versionOut, &found));
+ TEST_ASSERT(found);
+ TEST_ASSERT(versionOut == versionIn);
+
+ // update version
+ std::string16 newVersionIn(L"2.0");
+ TEST_ASSERT(table.SetVersion(kTestOrigin, kTestName, newVersionIn));
+
+ TEST_ASSERT(table.GetVersion(kTestOrigin, kTestName, &versionOut, &found));
+ TEST_ASSERT(found);
+ TEST_ASSERT(versionOut == newVersionIn);
+
+ // read unknown origin/name
+ TEST_ASSERT(table.GetVersion(std::string16(L"http://unknown.example.com"),
+ std::string16(L"unknown"), &versionOut, &found));
+
+ TEST_ASSERT(!found);
+
+ LOG(("TestDatabase2VersionsTable - passed\n"));
+
+ return true;
+}

Powered by Google App Engine
This is Rietveld r292