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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/api/image_writer_private/test_utils.h" 5 #include "chrome/browser/extensions/api/image_writer_private/test_utils.h"
6 6
7 #if defined(OS_CHROMEOS)
8 #include "chromeos/dbus/dbus_thread_manager.h"
9 #include "chromeos/dbus/fake_dbus_thread_manager.h"
10 #include "chromeos/dbus/fake_image_burner_client.h"
11 #endif
12
7 namespace extensions { 13 namespace extensions {
8 namespace image_writer { 14 namespace image_writer {
9 15
16 #if defined(OS_CHROMEOS)
17 namespace {
18
19 class ImageWriterFakeImageBurnerClient
20 : public chromeos::FakeImageBurnerClient {
21 public:
22 ImageWriterFakeImageBurnerClient() {}
23 virtual ~ImageWriterFakeImageBurnerClient() {}
24
25 virtual void SetEventHandlers(
26 const BurnFinishedHandler& burn_finished_handler,
27 const BurnProgressUpdateHandler& burn_progress_update_handler) OVERRIDE {
28 burn_finished_handler_ = burn_finished_handler;
29 burn_progress_update_handler_ = burn_progress_update_handler;
30 }
31
32 virtual void BurnImage(const std::string& from_path,
33 const std::string& to_path,
34 const ErrorCallback& error_callback) OVERRIDE {
35 base::MessageLoop::current()->PostTask(FROM_HERE,
36 base::Bind(burn_progress_update_handler_, to_path, 0, 100));
37 base::MessageLoop::current()->PostTask(FROM_HERE,
38 base::Bind(burn_progress_update_handler_, to_path, 50, 100));
39 base::MessageLoop::current()->PostTask(FROM_HERE,
40 base::Bind(burn_progress_update_handler_, to_path, 100, 100));
41 base::MessageLoop::current()->PostTask(FROM_HERE,
42 base::Bind(burn_finished_handler_, to_path, true, ""));
43 }
44
45 private:
46 BurnFinishedHandler burn_finished_handler_;
47 BurnProgressUpdateHandler burn_progress_update_handler_;
48
49 };
50
51 } // namespace
52 #endif
53
10 MockOperationManager::MockOperationManager() 54 MockOperationManager::MockOperationManager()
11 : OperationManager(NULL) { 55 : OperationManager(NULL) {}
56
57 MockOperationManager::~MockOperationManager() {}
58
59 ImageWriterUnitTestBase::ImageWriterUnitTestBase() {}
60 ImageWriterUnitTestBase::~ImageWriterUnitTestBase() {}
61
62 void ImageWriterUnitTestBase::SetUp() {
63 testing::Test::SetUp();
64 ASSERT_TRUE(temp_dir_.CreateUniqueTempDir());
65
66 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
67 &test_image_path_));
68 ASSERT_TRUE(base::CreateTemporaryFileInDir(temp_dir_.path(),
69 &test_device_path_));
70
71 ASSERT_TRUE(FillFile(test_image_path_, kImagePattern, kTestFileSize));
72 ASSERT_TRUE(FillFile(test_device_path_, kDevicePattern, kTestFileSize));
73
74 #if defined(OS_CHROMEOS)
75 if (!chromeos::DBusThreadManager::IsInitialized()) {
76 chromeos::FakeDBusThreadManager* fake_dbus_thread_manager =
77 new chromeos::FakeDBusThreadManager;
78 scoped_ptr<chromeos::ImageBurnerClient>
79 image_burner_fake(new ImageWriterFakeImageBurnerClient());
80 fake_dbus_thread_manager->SetImageBurnerClient(image_burner_fake.Pass());
81 chromeos::DBusThreadManager::InitializeForTesting(fake_dbus_thread_manager);
82 }
83 #endif
12 } 84 }
13 85
14 MockOperationManager::~MockOperationManager() { 86 void ImageWriterUnitTestBase::TearDown() {}
87
88 bool ImageWriterUnitTestBase::CompareImageAndDevice() {
89 scoped_ptr<char[]> image_buffer(new char[kTestFileSize]);
90 scoped_ptr<char[]> device_buffer(new char[kTestFileSize]);
91
92 while (true) {
93 int image_bytes_read = ReadFile(test_image_path_,
94 image_buffer.get(),
95 kTestFileSize);
96 int device_bytes_read = ReadFile(test_device_path_,
97 device_buffer.get(),
98 kTestFileSize);
99
100 if (image_bytes_read != device_bytes_read)
101 return false;
102
103 if (image_bytes_read == 0)
104 return true;
105
106 if (memcmp(image_buffer.get(), device_buffer.get(), image_bytes_read) != 0)
107 return false;
108 }
109
110 return false;
15 } 111 }
16 112
17 void ImageWriterUnitTestBase::SetUp() { 113 bool ImageWriterUnitTestBase::FillFile(const base::FilePath& file,
18 ASSERT_TRUE(base::CreateTemporaryFile(&test_image_)); 114 const int pattern,
19 ASSERT_TRUE(base::CreateTemporaryFile(&test_device_)); 115 const int length) {
116 scoped_ptr<char[]> buffer(new char[length]);
117 memset(buffer.get(), pattern, length);
20 118
21 ASSERT_EQ(32, file_util::WriteFile(test_image_, kTestData, 32)); 119 return file_util::WriteFile(file, buffer.get(), length) == length;
22 }
23
24 void ImageWriterUnitTestBase::TearDown() {
25 base::DeleteFile(test_image_, false);
26 base::DeleteFile(test_device_, false);
27 } 120 }
28 121
29 } // namespace image_writer 122 } // namespace image_writer
30 } // namespace extensions 123 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698