Home | History | Annotate | Download | only in android
      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