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

Side by Side Diff: media/base/composite_filter_unittest.cc

Issue 9717021: Make Callback::Reset() return a copy to support use-cases where Run() ends up modifying |*this|. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: no base:: Created 8 years, 9 months 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 | Annotate | Revision Log
« no previous file with comments | « media/base/composite_filter.cc ('k') | media/base/filters.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/callback_helpers.h"
6 #include "base/message_loop.h" 7 #include "base/message_loop.h"
7 #include "media/base/composite_filter.h" 8 #include "media/base/composite_filter.h"
8 #include "media/base/mock_callback.h" 9 #include "media/base/mock_callback.h"
9 #include "media/base/mock_filter_host.h" 10 #include "media/base/mock_filter_host.h"
10 #include "media/base/mock_filters.h" 11 #include "media/base/mock_filters.h"
11 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
12 13
13 using ::testing::_; 14 using ::testing::_;
14 using ::testing::InSequence; 15 using ::testing::InSequence;
15 using ::testing::Return; 16 using ::testing::Return;
(...skipping 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 330
330 bool CompositeFilterTest::HasFilter1Callback() const { 331 bool CompositeFilterTest::HasFilter1Callback() const {
331 CHECK(filter_1_cb_.is_null() || filter_1_status_cb_.is_null()); 332 CHECK(filter_1_cb_.is_null() || filter_1_status_cb_.is_null());
332 return !filter_1_cb_.is_null() || !filter_1_status_cb_.is_null(); 333 return !filter_1_cb_.is_null() || !filter_1_status_cb_.is_null();
333 } 334 }
334 335
335 void CompositeFilterTest::RunFilter1Callback() { 336 void CompositeFilterTest::RunFilter1Callback() {
336 EXPECT_TRUE(HasFilter1Callback()); 337 EXPECT_TRUE(HasFilter1Callback());
337 338
338 if (!filter_1_status_cb_.is_null()) { 339 if (!filter_1_status_cb_.is_null()) {
339 ResetAndRunCB(&filter_1_status_cb_, filter_1_status_); 340 base::ResetAndReturn(&filter_1_status_cb_).Run(filter_1_status_);
340 filter_1_status_ = PIPELINE_OK; 341 filter_1_status_ = PIPELINE_OK;
341 return; 342 return;
342 } 343 }
343 344
344 EXPECT_TRUE(!filter_1_cb_.is_null()); 345 EXPECT_TRUE(!filter_1_cb_.is_null());
345 base::Closure callback = filter_1_cb_; 346 base::Closure callback = filter_1_cb_;
346 filter_1_cb_.Reset(); 347 filter_1_cb_.Reset();
347 callback.Run(); 348 callback.Run();
348 } 349 }
349 350
350 bool CompositeFilterTest::HasFilter2Callback() const { 351 bool CompositeFilterTest::HasFilter2Callback() const {
351 CHECK(filter_2_cb_.is_null() || filter_2_status_cb_.is_null()); 352 CHECK(filter_2_cb_.is_null() || filter_2_status_cb_.is_null());
352 return !filter_2_cb_.is_null() || !filter_2_status_cb_.is_null(); 353 return !filter_2_cb_.is_null() || !filter_2_status_cb_.is_null();
353 } 354 }
354 355
355 void CompositeFilterTest::RunFilter2Callback() { 356 void CompositeFilterTest::RunFilter2Callback() {
356 EXPECT_TRUE(HasFilter2Callback()); 357 EXPECT_TRUE(HasFilter2Callback());
357 358
358 if (!filter_2_status_cb_.is_null()) { 359 if (!filter_2_status_cb_.is_null()) {
359 ResetAndRunCB(&filter_2_status_cb_, filter_2_status_); 360 base::ResetAndReturn(&filter_2_status_cb_).Run(filter_2_status_);
360 filter_2_status_ = PIPELINE_OK; 361 filter_2_status_ = PIPELINE_OK;
361 return; 362 return;
362 } 363 }
363 364
364 EXPECT_FALSE(filter_2_cb_.is_null()); 365 EXPECT_FALSE(filter_2_cb_.is_null());
365 base::Closure callback = filter_2_cb_; 366 base::Closure callback = filter_2_cb_;
366 filter_2_cb_.Reset(); 367 filter_2_cb_.Reset();
367 callback.Run(); 368 callback.Run();
368 } 369 }
369 370
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 NewExpectedStatusCB(PIPELINE_OK)); 789 NewExpectedStatusCB(PIPELINE_OK));
789 790
790 // Issue a Play() and expect no errors. 791 // Issue a Play() and expect no errors.
791 composite_->Play(NewExpectedClosure()); 792 composite_->Play(NewExpectedClosure());
792 793
793 // Issue a Stop() and expect no errors. 794 // Issue a Stop() and expect no errors.
794 composite_->Stop(NewExpectedClosure()); 795 composite_->Stop(NewExpectedClosure());
795 } 796 }
796 797
797 } // namespace media 798 } // namespace media
OLDNEW
« no previous file with comments | « media/base/composite_filter.cc ('k') | media/base/filters.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698