1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "chrome/browser/history/android/android_urls_database.h" 6 7 #include "base/files/file_path.h" 8 #include "base/files/scoped_temp_dir.h" 9 #include "base/path_service.h" 10 #include "chrome/browser/history/history_database.h" 11 #include "chrome/browser/history/history_unittest_base.h" 12 #include "chrome/common/chrome_constants.h" 13 #include "chrome/common/chrome_paths.h" 14 #include "chrome/test/base/testing_profile.h" 15 16 namespace history { 17 18 class AndroidURLsMigrationTest : public HistoryUnitTestBase { 19 public: 20 AndroidURLsMigrationTest() { 21 } 22 virtual ~AndroidURLsMigrationTest() {} 23 24 protected: 25 virtual void SetUp() { 26 profile_.reset(new TestingProfile); 27 28 base::FilePath data_path; 29 ASSERT_TRUE(PathService::Get(chrome::DIR_TEST_DATA, &data_path)); 30 data_path = data_path.AppendASCII("History"); 31 32 history_db_name_ = profile_->GetPath().Append(chrome::kHistoryFilename); 33 // Set up history as they would be before migration. 34 ASSERT_NO_FATAL_FAILURE( 35 ExecuteSQLScript(data_path.AppendASCII("history.21.sql"), 36 history_db_name_)); 37 } 38 39 protected: 40 base::FilePath history_db_name_; 41 scoped_ptr<TestingProfile> profile_; 42 }; 43 44 // Disabled as this does not correctly set up all the tables so that migration 45 // fails. See http://crbug.com/175460 . 46 TEST_F(AndroidURLsMigrationTest, DISABLED_MigrateToVersion22) { 47 HistoryDatabase db; 48 ASSERT_EQ(sql::INIT_OK, db.Init(history_db_name_)); 49 // Migration has done. 50 // The column of previous table shouldn't exist. 51 EXPECT_FALSE(db.GetDB().DoesColumnExist("android_urls", "bookmark")); 52 sql::Statement statement(db.GetDB().GetUniqueStatement( 53 "SELECT id, url_id, raw_url FROM android_urls ORDER BY id ASC")); 54 ASSERT_TRUE(statement.Step()); 55 EXPECT_EQ(1, statement.ColumnInt64(0)); 56 EXPECT_EQ("http://google.com/", statement.ColumnString(2)); 57 EXPECT_EQ(1, statement.ColumnInt64(1)); 58 59 ASSERT_TRUE(statement.Step()); 60 EXPECT_EQ(4, statement.ColumnInt64(0)); 61 EXPECT_EQ("www.google.com/", statement.ColumnString(2)); 62 EXPECT_EQ(3, statement.ColumnInt64(1)); 63 64 EXPECT_FALSE(statement.Step()); 65 } 66 67 } // namespace history 68