1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "base/run_loop.h" 6 #include "chrome/browser/extensions/api/image_writer_private/destroy_partitions_operation.h" 7 #include "chrome/browser/extensions/api/image_writer_private/error_messages.h" 8 #include "chrome/browser/extensions/api/image_writer_private/test_utils.h" 9 #include "chrome/test/base/testing_profile.h" 10 11 namespace extensions { 12 namespace image_writer { 13 namespace { 14 15 using testing::_; 16 using testing::AnyNumber; 17 using testing::AtLeast; 18 19 class ImageWriterDestroyPartitionsOperationTest 20 : public ImageWriterUnitTestBase {}; 21 22 TEST_F(ImageWriterDestroyPartitionsOperationTest, EndToEnd) { 23 TestingProfile profile; 24 MockOperationManager manager(&profile); 25 26 scoped_refptr<DestroyPartitionsOperation> operation( 27 new DestroyPartitionsOperation( 28 manager.AsWeakPtr(), 29 kDummyExtensionId, 30 test_utils_.GetDevicePath().AsUTF8Unsafe())); 31 32 EXPECT_CALL( 33 manager, 34 OnProgress(kDummyExtensionId, image_writer_api::STAGE_VERIFYWRITE, _)) 35 .Times(AnyNumber()); 36 EXPECT_CALL(manager, OnProgress(kDummyExtensionId, 37 image_writer_api::STAGE_WRITE, 38 _)).Times(AnyNumber()); 39 EXPECT_CALL(manager, 40 OnProgress(kDummyExtensionId, image_writer_api::STAGE_WRITE, 0)) 41 .Times(AtLeast(1)); 42 EXPECT_CALL(manager, 43 OnProgress(kDummyExtensionId, image_writer_api::STAGE_WRITE, 100)) 44 .Times(AtLeast(1)); 45 EXPECT_CALL(manager, OnComplete(kDummyExtensionId)).Times(1); 46 EXPECT_CALL(manager, OnError(kDummyExtensionId, _, _, _)).Times(0); 47 48 operation->Start(); 49 50 base::RunLoop().RunUntilIdle(); 51 52 #if !defined(OS_CHROMEOS) 53 test_utils_.GetUtilityClient()->Progress(0); 54 test_utils_.GetUtilityClient()->Progress(50); 55 test_utils_.GetUtilityClient()->Progress(100); 56 test_utils_.GetUtilityClient()->Success(); 57 58 base::RunLoop().RunUntilIdle(); 59 #endif 60 } 61 62 } // namespace 63 } // namespace image_writer 64 } // namespace extensions 65