Chromium Code Reviews| Index: chrome/browser/extensions/api/image_writer_private/test_utils.cc |
| diff --git a/chrome/browser/extensions/api/image_writer_private/test_utils.cc b/chrome/browser/extensions/api/image_writer_private/test_utils.cc |
| index 651ce0a2d1af7022d64c1412e476c464651f695c..caef818c1aa0e0a0e75728c0f3f031a729752ed6 100644 |
| --- a/chrome/browser/extensions/api/image_writer_private/test_utils.cc |
| +++ b/chrome/browser/extensions/api/image_writer_private/test_utils.cc |
| @@ -4,26 +4,119 @@ |
| #include "chrome/browser/extensions/api/image_writer_private/test_utils.h" |
| +#if defined(OS_CHROMEOS) |
| +#include "chromeos/dbus/dbus_thread_manager.h" |
| +#include "chromeos/dbus/fake_dbus_thread_manager.h" |
| +#include "chromeos/dbus/fake_image_burner_client.h" |
| +#endif |
| + |
| namespace extensions { |
| namespace image_writer { |
| +#if defined(OS_CHROMEOS) |
| +namespace { |
| + |
| +class ImageWriterFakeImageBurnerClient |
| + : public chromeos::FakeImageBurnerClient { |
| + public: |
| + ImageWriterFakeImageBurnerClient() {} |
| + virtual ~ImageWriterFakeImageBurnerClient() {} |
| + |
| + virtual void SetEventHandlers( |
| + const BurnFinishedHandler& burn_finished_handler, |
| + const BurnProgressUpdateHandler& burn_progress_update_handler) OVERRIDE { |
| + burn_finished_handler_ = burn_finished_handler; |
| + burn_progress_update_handler_ = burn_progress_update_handler; |
| + } |
| + |
| + virtual void BurnImage(const std::string& from_path, |
| + const std::string& to_path, |
| + const ErrorCallback& error_callback) OVERRIDE { |
| + base::MessageLoop::current()->PostTask(FROM_HERE, |
| + base::Bind(burn_progress_update_handler_, to_path, 0, 100)); |
| + base::MessageLoop::current()->PostTask(FROM_HERE, |
| + base::Bind(burn_progress_update_handler_, to_path, 50, 100)); |
| + base::MessageLoop::current()->PostTask(FROM_HERE, |
| + base::Bind(burn_progress_update_handler_, to_path, 100, 100)); |
| + base::MessageLoop::current()->PostTask(FROM_HERE, |
| + base::Bind(burn_finished_handler_, to_path, true, "")); |
| + } |
| + |
| + private: |
| + BurnFinishedHandler burn_finished_handler_; |
| + BurnProgressUpdateHandler burn_progress_update_handler_; |
| + |
| +}; |
| + |
| +} // namespace |
| +#endif |
| + |
| MockOperationManager::MockOperationManager() |
| - : OperationManager(NULL) { |
| -} |
| + : OperationManager(NULL) {} |
| -MockOperationManager::~MockOperationManager() { |
| -} |
| +MockOperationManager::~MockOperationManager() {} |
| + |
| +ImageWriterUnitTestBase::ImageWriterUnitTestBase() {} |
| +ImageWriterUnitTestBase::~ImageWriterUnitTestBase() {} |
| void ImageWriterUnitTestBase::SetUp() { |
| - ASSERT_TRUE(base::CreateTemporaryFile(&test_image_)); |
| - ASSERT_TRUE(base::CreateTemporaryFile(&test_device_)); |
| + testing::Test::SetUp(); |
| + ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); |
| - ASSERT_EQ(32, file_util::WriteFile(test_image_, kTestData, 32)); |
| + ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
| + &test_image_path_)); |
| + ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(), |
| + &test_device_path_)); |
| + |
| + ASSERT_TRUE(FillFile(test_image_path_, kImagePattern, kTestFileSize)); |
| + ASSERT_TRUE(FillFile(test_device_path_, kDevicePattern, kTestFileSize)); |
| + |
| +#if defined(OS_CHROMEOS) |
| + if (!chromeos::DBusThreadManager::IsInitialized()) { |
| + chromeos::FakeDBusThreadManager* fake_dbus_thread_manager = |
| + new chromeos::FakeDBusThreadManager; |
| + scoped_ptr<chromeos::ImageBurnerClient> |
| + image_burner_fake(new ImageWriterFakeImageBurnerClient()); |
| + fake_dbus_thread_manager->SetImageBurnerClient(image_burner_fake.Pass()); |
| + chromeos::DBusThreadManager::InitializeForTesting(fake_dbus_thread_manager); |
|
Lei Zhang
2014/01/07 00:56:37
Likely you are missing a corresponding chrome::DBu
|
| + } |
| +#endif |
| } |
| -void ImageWriterUnitTestBase::TearDown() { |
| - base::DeleteFile(test_image_, false); |
| - base::DeleteFile(test_device_, false); |
| +void ImageWriterUnitTestBase::TearDown() {} |
| + |
| +bool ImageWriterUnitTestBase::CompareImageAndDevice() { |
| + scoped_ptr<char[]> image_buffer(new char[kTestFileSize]); |
| + scoped_ptr<char[]> device_buffer(new char[kTestFileSize]); |
| + |
| + while (true) { |
| + int image_bytes_read = ReadFile(test_image_path_, |
| + image_buffer.get(), |
| + kTestFileSize); |
| + int device_bytes_read = ReadFile(test_device_path_, |
| + device_buffer.get(), |
| + kTestFileSize); |
| + |
| + if (image_bytes_read != device_bytes_read) |
| + return false; |
| + |
| + if (image_bytes_read == 0) |
| + return true; |
| + |
| + if (memcmp(image_buffer.get(), device_buffer.get(), image_bytes_read) != 0) |
| + return false; |
| + } |
| + |
| + return false; |
| +} |
| + |
| +bool ImageWriterUnitTestBase::FillFile(const base::FilePath& file, |
| + const int pattern, |
| + const int length) { |
| + scoped_ptr<char[]> buffer(new char[length]); |
| + memset(buffer.get(), pattern, length); |
| + |
| + return file_util::WriteFile(file, buffer.get(), length) == length; |
| } |
| } // namespace image_writer |