Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5108)

Unified Diff: chrome/browser/extensions/api/image_writer_private/test_utils.cc

Issue 109793006: Adds ImageWriterPrivate.destroyPartitions operation. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixes up DBusThreadManager initialization. Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+ }
+#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

Powered by Google App Engine
This is Rietveld 408576698