Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / extensions / api / image_writer_private / test_utils.cc
index 6800574..442b041 100644 (file)
@@ -77,6 +77,9 @@ void FakeImageWriterClient::Write(const ProgressCallback& progress_callback,
   progress_callback_ = progress_callback;
   success_callback_ = success_callback;
   error_callback_ = error_callback;
+
+  if (!write_callback_.is_null())
+    write_callback_.Run();
 }
 
 void FakeImageWriterClient::Verify(const ProgressCallback& progress_callback,
@@ -87,6 +90,9 @@ void FakeImageWriterClient::Verify(const ProgressCallback& progress_callback,
   progress_callback_ = progress_callback;
   success_callback_ = success_callback;
   error_callback_ = error_callback;
+
+  if (!verify_callback_.is_null())
+    verify_callback_.Run();
 }
 
 void FakeImageWriterClient::Cancel(const CancelCallback& cancel_callback) {
@@ -95,35 +101,55 @@ void FakeImageWriterClient::Cancel(const CancelCallback& cancel_callback) {
 
 void FakeImageWriterClient::Shutdown() {
   // Clear handlers to not hold any reference to the caller.
-  success_callback_ = base::Closure();
-  progress_callback_ = base::Callback<void(int64)>();
-  error_callback_ = base::Callback<void(const std::string&)>();
-  cancel_callback_ = base::Closure();
+  success_callback_.Reset();
+  progress_callback_.Reset();
+  error_callback_.Reset();
+  cancel_callback_.Reset();
+
+  write_callback_.Reset();
+  verify_callback_.Reset();
+}
+
+void FakeImageWriterClient::SetWriteCallback(
+    const base::Closure& write_callback) {
+  write_callback_ = write_callback;
+}
+
+void FakeImageWriterClient::SetVerifyCallback(
+    const base::Closure& verify_callback) {
+  verify_callback_ = verify_callback;
 }
 
 void FakeImageWriterClient::Progress(int64 progress) {
-  progress_callback_.Run(progress);
+  if (!progress_callback_.is_null())
+    progress_callback_.Run(progress);
 }
 
-void FakeImageWriterClient::Success() { success_callback_.Run(); }
+void FakeImageWriterClient::Success() {
+  if (!success_callback_.is_null())
+    success_callback_.Run();
+}
 
 void FakeImageWriterClient::Error(const std::string& message) {
-  error_callback_.Run(message);
+  if (!error_callback_.is_null())
+    error_callback_.Run(message);
 }
 
-void FakeImageWriterClient::Cancel() { cancel_callback_.Run(); }
-
-scoped_refptr<FakeImageWriterClient> FakeImageWriterClient::Create() {
-  return scoped_refptr<FakeImageWriterClient>(new FakeImageWriterClient());
+void FakeImageWriterClient::Cancel() {
+  if (!cancel_callback_.is_null())
+    cancel_callback_.Run();
 }
 
-ImageWriterUnitTestBase::ImageWriterUnitTestBase()
-    : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP) {}
-ImageWriterUnitTestBase::~ImageWriterUnitTestBase() {}
+ImageWriterTestUtils::ImageWriterTestUtils() {
+}
+ImageWriterTestUtils::~ImageWriterTestUtils() {
+}
 
-void ImageWriterUnitTestBase::SetUp() {
-  testing::Test::SetUp();
+void ImageWriterTestUtils::SetUp() {
+  SetUp(false);
+}
 
+void ImageWriterTestUtils::SetUp(bool is_browser_test) {
   ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
   ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
                                              &test_image_path_));
@@ -137,11 +163,20 @@ void ImageWriterUnitTestBase::SetUp() {
   if (!chromeos::DBusThreadManager::IsInitialized()) {
     chromeos::FakeDBusThreadManager* fake_dbus_thread_manager =
         new chromeos::FakeDBusThreadManager;
+    fake_dbus_thread_manager->SetFakeClients();
     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);
+
+    if (is_browser_test) {
+      chromeos::DBusThreadManager::SetInstanceForTesting(
+          fake_dbus_thread_manager);
+    } else {
+      chromeos::DBusThreadManager::InitializeForTesting(
+          fake_dbus_thread_manager);
+    }
   }
+
   FakeDiskMountManager* disk_manager = new FakeDiskMountManager();
   chromeos::disks::DiskMountManager::InitializeForTesting(disk_manager);
 
@@ -160,32 +195,57 @@ void ImageWriterUnitTestBase::SetUp() {
       kTestFileSize,
       true,
       true,
+      true,
       false);
   disk_manager->SetupDefaultReplies();
+#else
+  client_ = new FakeImageWriterClient();
+  image_writer::Operation::SetUtilityClientForTesting(client_);
 #endif
 }
 
-void ImageWriterUnitTestBase::TearDown() {
+void ImageWriterTestUtils::TearDown() {
 #if defined(OS_CHROMEOS)
-  chromeos::DBusThreadManager::Shutdown();
+  if (chromeos::DBusThreadManager::IsInitialized()) {
+    chromeos::DBusThreadManager::Shutdown();
+  }
   chromeos::disks::DiskMountManager::Shutdown();
+#else
+  image_writer::Operation::SetUtilityClientForTesting(NULL);
+  client_->Shutdown();
 #endif
 }
 
-bool ImageWriterUnitTestBase::ImageWrittenToDevice(
-    const base::FilePath& image_path,
-    const base::FilePath& device_path) {
+const base::FilePath& ImageWriterTestUtils::GetTempDir() {
+  return temp_dir_.path();
+}
+
+const base::FilePath& ImageWriterTestUtils::GetImagePath() {
+  return test_image_path_;
+}
+
+const base::FilePath& ImageWriterTestUtils::GetDevicePath() {
+  return test_device_path_;
+}
+
+#if !defined(OS_CHROMEOS)
+FakeImageWriterClient* ImageWriterTestUtils::GetUtilityClient() {
+  return client_.get();
+}
+#endif
+
+bool ImageWriterTestUtils::ImageWrittenToDevice() {
   scoped_ptr<char[]> image_buffer(new char[kTestFileSize]);
   scoped_ptr<char[]> device_buffer(new char[kTestFileSize]);
 
   int image_bytes_read =
-      ReadFile(image_path, image_buffer.get(), kTestFileSize);
+      ReadFile(test_image_path_, image_buffer.get(), kTestFileSize);
 
   if (image_bytes_read < 0)
     return false;
 
   int device_bytes_read =
-      ReadFile(device_path, device_buffer.get(), kTestFileSize);
+      ReadFile(test_device_path_, device_buffer.get(), kTestFileSize);
 
   if (image_bytes_read != device_bytes_read)
     return false;
@@ -193,14 +253,30 @@ bool ImageWriterUnitTestBase::ImageWrittenToDevice(
   return memcmp(image_buffer.get(), device_buffer.get(), image_bytes_read) == 0;
 }
 
-bool ImageWriterUnitTestBase::FillFile(const base::FilePath& file,
-                                       const int pattern,
-                                       const int length) {
+bool ImageWriterTestUtils::FillFile(const base::FilePath& file,
+                                    const int pattern,
+                                    const int length) {
   scoped_ptr<char[]> buffer(new char[length]);
   memset(buffer.get(), pattern, length);
 
   return base::WriteFile(file, buffer.get(), length) == length;
 }
 
+ImageWriterUnitTestBase::ImageWriterUnitTestBase()
+    : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP) {
+}
+ImageWriterUnitTestBase::~ImageWriterUnitTestBase() {
+}
+
+void ImageWriterUnitTestBase::SetUp() {
+  testing::Test::SetUp();
+  test_utils_.SetUp();
+}
+
+void ImageWriterUnitTestBase::TearDown() {
+  testing::Test::TearDown();
+  test_utils_.TearDown();
+}
+
 }  // namespace image_writer
 }  // namespace extensions