Index: trunk/src/chrome/browser/extensions/api/image_writer_private/destroy_partitions_operation_unittest.cc |
=================================================================== |
--- trunk/src/chrome/browser/extensions/api/image_writer_private/destroy_partitions_operation_unittest.cc (revision 252593) |
+++ trunk/src/chrome/browser/extensions/api/image_writer_private/destroy_partitions_operation_unittest.cc (working copy) |
@@ -9,32 +9,29 @@ |
namespace extensions { |
namespace image_writer { |
-namespace { |
using testing::_; |
using testing::AnyNumber; |
using testing::AtLeast; |
+namespace { |
+ |
class ImageWriterDestroyPartitionsOperationTest |
- : public ImageWriterUnitTestBase {}; |
+ : public ImageWriterUnitTestBase { |
+}; |
-TEST_F(ImageWriterDestroyPartitionsOperationTest, EndToEnd) { |
+// Tests that the DestroyPartitionsOperation can successfully zero the first |
+// kPartitionTableSize bytes of an image. |
+TEST_F(ImageWriterDestroyPartitionsOperationTest, DestroyPartitionsEndToEnd) { |
MockOperationManager manager; |
- scoped_refptr<FakeImageWriterClient> client = FakeImageWriterClient::Create(); |
+ base::RunLoop loop; |
scoped_refptr<DestroyPartitionsOperation> operation( |
new DestroyPartitionsOperation(manager.AsWeakPtr(), |
kDummyExtensionId, |
test_device_path_.AsUTF8Unsafe())); |
-#if !defined(OS_CHROMEOS) |
- operation->SetUtilityClientForTesting(client); |
-#endif |
- |
- EXPECT_CALL( |
- manager, |
- OnProgress(kDummyExtensionId, image_writer_api::STAGE_VERIFYWRITE, _)) |
- .Times(AnyNumber()); |
+#if defined(OS_LINUX) || defined(OS_CHROMEOS) |
EXPECT_CALL(manager, OnProgress(kDummyExtensionId, |
image_writer_api::STAGE_WRITE, |
_)).Times(AnyNumber()); |
@@ -46,18 +43,27 @@ |
.Times(AtLeast(1)); |
EXPECT_CALL(manager, OnComplete(kDummyExtensionId)).Times(1); |
EXPECT_CALL(manager, OnError(kDummyExtensionId, _, _, _)).Times(0); |
+#else |
+ EXPECT_CALL(manager, OnProgress(kDummyExtensionId, _, _)).Times(0); |
+ EXPECT_CALL(manager, OnComplete(kDummyExtensionId)).Times(0); |
+ EXPECT_CALL(manager, OnError(kDummyExtensionId, |
+ _, |
+ _, |
+ error::kUnsupportedOperation)).Times(1); |
+#endif |
operation->Start(); |
- base::RunLoop().RunUntilIdle(); |
+ loop.RunUntilIdle(); |
-#if !defined(OS_CHROMEOS) |
- client->Progress(0); |
- client->Progress(50); |
- client->Progress(100); |
- client->Success(); |
- |
- base::RunLoop().RunUntilIdle(); |
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
+ scoped_ptr<char[]> image_data(new char[kPartitionTableSize]); |
+ scoped_ptr<char[]> zeroes(new char[kPartitionTableSize]); |
+ memset(zeroes.get(), 0, kPartitionTableSize); |
+ ASSERT_EQ(kPartitionTableSize, base::ReadFile(test_device_path_, |
+ image_data.get(), |
+ kPartitionTableSize)); |
+ EXPECT_EQ(0, memcmp(image_data.get(), zeroes.get(), kPartitionTableSize)); |
#endif |
} |