// 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_local_storage_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(CannedBrowsingDataLocalStorageTest, AddLocalStorage) { TestingProfile profile; const GURL origin1("http://host1:1/"); const GURL origin2("http://host2:1/"); const FilePath::CharType file1[] = FILE_PATH_LITERAL("http_host1_1.localstorage"); const FilePath::CharType file2[] = FILE_PATH_LITERAL("http_host2_1.localstorage"); scoped_refptr helper = new CannedBrowsingDataLocalStorageHelper(&profile); helper->AddLocalStorage(origin1); helper->AddLocalStorage(origin2); TestCompletionCallback callback; helper->StartFetching(&callback); ASSERT_TRUE(callback.have_result()); std::vector result = callback.result(); ASSERT_EQ(2u, result.size()); EXPECT_EQ(FilePath(file1).value(), result[0].file_path.BaseName().value()); EXPECT_EQ(FilePath(file2).value(), result[1].file_path.BaseName().value()); }