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 16namespace history { 17 18class 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 . 46TEST_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