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

Side by Side Diff: chrome/browser/image_writer/image_writer_browsertest.cc

Issue 61643015: Adds imageWriterPrivate support for Windows (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reorganization and test updates. Created 7 years, 1 month 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
(Empty)
1 // Copyright (c) 2012 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/file_util.h"
6 #include "base/run_loop.h"
7 #include "chrome/browser/image_writer/image_writer.h"
8 #include "chrome/browser/image_writer/image_writer_test_utils.h"
9 #include "chrome/test/base/in_process_browser_test.h"
10 #include "content/public/browser/browser_thread.h"
11 #include "content/public/test/test_utils.h"
12 #include "testing/gmock/include/gmock/gmock.h"
13 #include "testing/gtest/include/gtest/gtest.h"
14
15 namespace image_writer {
16
17 using testing::_;
18 using testing::AnyNumber;
19 using testing::AtLeast;
20 using testing::Lt;
21
22 namespace {
23
24 class ImageWriterBrowserTest : public InProcessBrowserTest {
25 protected:
26 virtual void SetUp() OVERRIDE {
27 temp_files_.SetUp();
28 InProcessBrowserTest::SetUp();
29 }
30
31 TempFilesForTesting temp_files_;
32 };
33
34 class MockImageWriterDelgate : public ImageWriter::Delegate {
35 public:
36 MOCK_METHOD0(OnWriteImageSucceeded, void());
37 MOCK_METHOD1(OnWriteImageFailed, void(const std::string& message));
38 MOCK_METHOD1(OnWriteImageProgress, void(int progress));
39 };
40
41 class QuittingDelegate : public ImageWriter::Delegate {
42 public:
43 QuittingDelegate(const base::Closure& quit_closure,
44 ImageWriter::Delegate* delegate)
45 : quit_closure_(quit_closure),
46 delegate_(delegate) {
47 }
48
49 virtual void OnWriteImageSucceeded() OVERRIDE {
50 content::BrowserThread::PostTask(content::BrowserThread::UI,
51 FROM_HERE,
52 quit_closure_);
53 delegate_->OnWriteImageSucceeded();
54 }
55
56 virtual void OnWriteImageFailed(const std::string& message) OVERRIDE {
57 content::BrowserThread::PostTask(content::BrowserThread::UI,
58 FROM_HERE,
59 quit_closure_);
60 delegate_->OnWriteImageFailed(message);
61 }
62
63 virtual void OnWriteImageProgress(int progress) OVERRIDE {
64 delegate_->OnWriteImageProgress(progress);
65 }
66
67 private:
68 base::Closure quit_closure_;
69 ImageWriter::Delegate* delegate_;
70 };
71
72 } // namespace
73
74 IN_PROC_BROWSER_TEST_F(ImageWriterBrowserTest, Successful) {
75 DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
76
77 DLOG(INFO) << "Test starting.";
78
79 base::RunLoop loop;
80
81 MockImageWriterDelgate mock_delegate;
82 QuittingDelegate delegate(loop.QuitClosure(), &mock_delegate);
83
84 scoped_refptr<ImageWriter> image_writer(
85 new ImageWriter(&delegate,
86 temp_files_.ImagePath(),
87 temp_files_.DevicePath()));
88
89 EXPECT_CALL(mock_delegate, OnWriteImageProgress(Lt(100))).Times(AnyNumber());
90 EXPECT_CALL(mock_delegate, OnWriteImageProgress(100)).Times(AtLeast(1));
91 EXPECT_CALL(mock_delegate, OnWriteImageSucceeded()).Times(1);
92 EXPECT_CALL(mock_delegate, OnWriteImageFailed(_)).Times(0);
93
94 temp_files_.InitializeImage();
95 image_writer->Start(base::MessageLoop::current()->message_loop_proxy());
96
97 loop.Run();
98
99 EXPECT_TRUE(temp_files_.CompareImageAndDevice());
100
101 DLOG(INFO) << "Test complete.";
102 }
103
104 } // namespace image_writer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698