Index: webkit/database/databases_table_unittest.cc |
=================================================================== |
--- webkit/database/databases_table_unittest.cc (revision 35502) |
+++ webkit/database/databases_table_unittest.cc (working copy) |
@@ -4,12 +4,11 @@ |
#include "app/sql/connection.h" |
#include "app/sql/statement.h" |
-#include "base/scoped_temp_dir.h" |
#include "base/string_util.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "webkit/database/databases_table.h" |
-namespace webkit_database { |
+namespace { |
class TestErrorDelegate : public sql::ErrorDelegate { |
public: |
@@ -20,6 +19,10 @@ |
} |
}; |
+} // namespace |
+ |
+namespace webkit_database { |
+ |
static void CheckDetailsAreEqual(const DatabaseDetails& d1, |
const DatabaseDetails& d2) { |
EXPECT_EQ(d1.origin_identifier, d2.origin_identifier); |
@@ -36,7 +39,6 @@ |
TEST(DatabasesTableTest, TestIt) { |
// Initialize the 'Databases' table. |
- ScopedTempDir temp_dir; |
sql::Connection db; |
// Set an error delegate that will make all operations return false on error. |
@@ -44,8 +46,7 @@ |
db.set_error_delegate(error_delegate); |
// Initialize the temp dir and the 'Databases' table. |
- EXPECT_TRUE(temp_dir.CreateUniqueTempDir()); |
- EXPECT_TRUE(db.Open(temp_dir.path().Append(FILE_PATH_LITERAL("tracker.db")))); |
+ EXPECT_TRUE(db.OpenInMemory()); |
DatabasesTable databases_table(&db); |
EXPECT_TRUE(databases_table.Init()); |
@@ -116,6 +117,23 @@ |
CheckDetailsAreEqual(details_in1, details_out_origin1[0]); |
CheckDetailsAreEqual(details_in2, details_out_origin1[1]); |
+ // Get the list of all origins: should be "origin1" and "origin2". |
+ std::vector<string16> origins_out; |
+ EXPECT_TRUE(databases_table.GetAllOrigins(&origins_out)); |
+ EXPECT_EQ(size_t(2), origins_out.size()); |
+ EXPECT_EQ(details_in1.origin_identifier, origins_out[0]); |
+ EXPECT_EQ(details_in3.origin_identifier, origins_out[1]); |
+ |
+ // Delete an origin and check that it's no longer in the table. |
+ origins_out.clear(); |
+ EXPECT_TRUE(databases_table.DeleteOrigin(details_in3.origin_identifier)); |
+ EXPECT_TRUE(databases_table.GetAllOrigins(&origins_out)); |
+ EXPECT_EQ(size_t(1), origins_out.size()); |
+ EXPECT_EQ(details_in1.origin_identifier, origins_out[0]); |
+ |
+ // Deleting an origin that doesn't have any record in this table should fail. |
+ EXPECT_FALSE(databases_table.DeleteOrigin(ASCIIToUTF16("unknown_origin"))); |
+ |
// Delete the details for 'db1' and check that they're no longer there. |
EXPECT_TRUE(databases_table.DeleteDatabaseDetails( |
details_in1.origin_identifier, details_in1.database_name)); |