// Copyright (c) 2010 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/browsing_data_database_helper.h" #include "chrome/test/testing_profile.h" #include "testing/gtest/include/gtest/gtest.h" namespace { class TestCompletionCallback : public CallbackRunner& > > { public: TestCompletionCallback() : have_result_(false) { } bool have_result() const { return have_result_; } const std::vector& result() { return result_; } virtual void RunWithParams( const Tuple1& >& params) { have_result_ = true; result_ = params.a; } private: bool have_result_; std::vector result_; DISALLOW_COPY_AND_ASSIGN(TestCompletionCallback); }; } // namespace TEST(CannedBrowsingDataDatabaseTest, AddDatabase) { TestingProfile profile; const GURL origin1("http://host1:1/"); const GURL origin2("http://host2:1/"); const char origin_str1[] = "http_host1_1"; const char origin_str2[] = "http_host2_1"; const char db1[] = "db1"; const char db2[] = "db2"; const char db3[] = "db3"; scoped_refptr helper = new CannedBrowsingDataDatabaseHelper(&profile); helper->AddDatabase(origin1, db1, ""); helper->AddDatabase(origin1, db2, ""); helper->AddDatabase(origin2, db3, ""); TestCompletionCallback callback; helper->StartFetching(&callback); ASSERT_TRUE(callback.have_result()); std::vector result = callback.result(); ASSERT_EQ(3u, result.size()); EXPECT_STREQ(origin_str1, result[0].origin_identifier.c_str()); EXPECT_STREQ(db1, result[0].database_name.c_str()); EXPECT_STREQ(origin_str1, result[1].origin_identifier.c_str()); EXPECT_STREQ(db2, result[1].database_name.c_str()); EXPECT_STREQ(origin_str2, result[2].origin_identifier.c_str()); EXPECT_STREQ(db3, result[2].database_name.c_str()); }