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

Side by Side Diff: content/browser/device_orientation/provider_unittest.cc

Issue 16294003: Update content/ to use scoped_refptr<T>::get() rather than implicit "operator T*" (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased Created 7 years, 6 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
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 <map> 5 #include <map>
6 #include <queue> 6 #include <queue>
7 7
8 #include "base/message_loop.h" 8 #include "base/message_loop.h"
9 #include "base/synchronization/lock.h" 9 #include "base/synchronization/lock.h"
10 #include "content/browser/device_orientation/data_fetcher.h" 10 #include "content/browser/device_orientation/data_fetcher.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 80
81 virtual ~MotionUpdateChecker() {} 81 virtual ~MotionUpdateChecker() {}
82 82
83 // From UpdateChecker. 83 // From UpdateChecker.
84 virtual void OnDeviceDataUpdate(const DeviceData* device_data, 84 virtual void OnDeviceDataUpdate(const DeviceData* device_data,
85 DeviceData::Type device_data_type) OVERRIDE { 85 DeviceData::Type device_data_type) OVERRIDE {
86 ASSERT_FALSE(expectations_queue_.empty()); 86 ASSERT_FALSE(expectations_queue_.empty());
87 ASSERT_EQ(DeviceData::kTypeMotion, device_data_type); 87 ASSERT_EQ(DeviceData::kTypeMotion, device_data_type);
88 88
89 scoped_refptr<const Motion> motion(static_cast<const Motion*>(device_data)); 89 scoped_refptr<const Motion> motion(static_cast<const Motion*>(device_data));
90 if (motion == NULL) 90 if (motion.get() == NULL)
91 motion = new Motion(); 91 motion = new Motion();
92 92
93 scoped_refptr<const Motion> expected(static_cast<const Motion*>( 93 scoped_refptr<const Motion> expected(static_cast<const Motion*>(
94 (expectations_queue_.front().get()))); 94 (expectations_queue_.front().get())));
95 expectations_queue_.pop(); 95 expectations_queue_.pop();
96 96
97 EXPECT_EQ(expected->can_provide_acceleration_x(), 97 EXPECT_EQ(expected->can_provide_acceleration_x(),
98 motion->can_provide_acceleration_x()); 98 motion->can_provide_acceleration_x());
99 EXPECT_EQ(expected->can_provide_acceleration_y(), 99 EXPECT_EQ(expected->can_provide_acceleration_y(),
100 motion->can_provide_acceleration_y()); 100 motion->can_provide_acceleration_y());
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
166 virtual ~OrientationUpdateChecker() {} 166 virtual ~OrientationUpdateChecker() {}
167 167
168 // From UpdateChecker. 168 // From UpdateChecker.
169 virtual void OnDeviceDataUpdate(const DeviceData* device_data, 169 virtual void OnDeviceDataUpdate(const DeviceData* device_data,
170 DeviceData::Type device_data_type) OVERRIDE { 170 DeviceData::Type device_data_type) OVERRIDE {
171 ASSERT_FALSE(expectations_queue_.empty()); 171 ASSERT_FALSE(expectations_queue_.empty());
172 ASSERT_EQ(DeviceData::kTypeOrientation, device_data_type); 172 ASSERT_EQ(DeviceData::kTypeOrientation, device_data_type);
173 173
174 scoped_refptr<const Orientation> orientation( 174 scoped_refptr<const Orientation> orientation(
175 static_cast<const Orientation*>(device_data)); 175 static_cast<const Orientation*>(device_data));
176 if (orientation == NULL) 176 if (orientation.get() == NULL)
177 orientation = new Orientation(); 177 orientation = new Orientation();
178 178
179 scoped_refptr<const Orientation> expected(static_cast<const Orientation*>( 179 scoped_refptr<const Orientation> expected(static_cast<const Orientation*>(
180 (expectations_queue_.front().get()))); 180 (expectations_queue_.front().get())));
181 expectations_queue_.pop(); 181 expectations_queue_.pop();
182 182
183 EXPECT_EQ(expected->can_provide_alpha(), orientation->can_provide_alpha()); 183 EXPECT_EQ(expected->can_provide_alpha(), orientation->can_provide_alpha());
184 EXPECT_EQ(expected->can_provide_beta(), orientation->can_provide_beta()); 184 EXPECT_EQ(expected->can_provide_beta(), orientation->can_provide_beta());
185 EXPECT_EQ(expected->can_provide_gamma(), orientation->can_provide_gamma()); 185 EXPECT_EQ(expected->can_provide_gamma(), orientation->can_provide_gamma());
186 EXPECT_EQ(expected->can_provide_absolute(), 186 EXPECT_EQ(expected->can_provide_absolute(),
(...skipping 24 matching lines...) Expand all
211 } 211 }
212 212
213 // From UpdateChecker. 213 // From UpdateChecker.
214 virtual void OnDeviceDataUpdate(const DeviceData* device_data, 214 virtual void OnDeviceDataUpdate(const DeviceData* device_data,
215 DeviceData::Type device_data_type) OVERRIDE { 215 DeviceData::Type device_data_type) OVERRIDE {
216 ASSERT_FALSE(expectations_queue_.empty()); 216 ASSERT_FALSE(expectations_queue_.empty());
217 ASSERT_EQ(DeviceData::kTypeTest, device_data_type); 217 ASSERT_EQ(DeviceData::kTypeTest, device_data_type);
218 218
219 scoped_refptr<const TestData> test_data( 219 scoped_refptr<const TestData> test_data(
220 static_cast<const TestData*>(device_data)); 220 static_cast<const TestData*>(device_data));
221 if (test_data == NULL) 221 if (test_data.get() == NULL)
222 test_data = new TestData(); 222 test_data = new TestData();
223 223
224 scoped_refptr<const TestData> expected(static_cast<const TestData*>( 224 scoped_refptr<const TestData> expected(static_cast<const TestData*>(
225 (expectations_queue_.front().get()))); 225 (expectations_queue_.front().get())));
226 expectations_queue_.pop(); 226 expectations_queue_.pop();
227 227
228 EXPECT_EQ(expected->value(), test_data->value()); 228 EXPECT_EQ(expected->value(), test_data->value());
229 229
230 --(*expectations_count_ptr_); 230 --(*expectations_count_ptr_);
231 231
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
280 public: 280 public:
281 explicit MockDataFetcher(MockDeviceDataFactory* device_data_factory) 281 explicit MockDataFetcher(MockDeviceDataFactory* device_data_factory)
282 : device_data_factory_(device_data_factory) { } 282 : device_data_factory_(device_data_factory) { }
283 283
284 // From DataFetcher. Called by the Provider. 284 // From DataFetcher. Called by the Provider.
285 virtual const DeviceData* GetDeviceData( 285 virtual const DeviceData* GetDeviceData(
286 DeviceData::Type device_data_type) OVERRIDE { 286 DeviceData::Type device_data_type) OVERRIDE {
287 base::AutoLock auto_lock(device_data_factory_->lock_); 287 base::AutoLock auto_lock(device_data_factory_->lock_);
288 if (device_data_factory_->is_failing_) 288 if (device_data_factory_->is_failing_)
289 return NULL; 289 return NULL;
290 return device_data_factory_->device_data_map_[device_data_type]; 290 return device_data_factory_->device_data_map_[device_data_type].get();
291 } 291 }
292 292
293 private: 293 private:
294 scoped_refptr<MockDeviceDataFactory> device_data_factory_; 294 scoped_refptr<MockDeviceDataFactory> device_data_factory_;
295 }; 295 };
296 296
297 static MockDeviceDataFactory* instance_; 297 static MockDeviceDataFactory* instance_;
298 std::map<DeviceData::Type, scoped_refptr<const DeviceData> > device_data_map_; 298 std::map<DeviceData::Type, scoped_refptr<const DeviceData> > device_data_map_;
299 bool is_failing_; 299 bool is_failing_;
300 base::Lock lock_; 300 base::Lock lock_;
(...skipping 14 matching lines...) Expand all
315 EXPECT_FALSE(Provider::GetInstanceForTests()); 315 EXPECT_FALSE(Provider::GetInstanceForTests());
316 316
317 // Clean up in any case, so as to not break subsequent test. 317 // Clean up in any case, so as to not break subsequent test.
318 Provider::SetInstanceForTests(NULL); 318 Provider::SetInstanceForTests(NULL);
319 } 319 }
320 320
321 // Initialize the test fixture with a ProviderImpl that uses the 321 // Initialize the test fixture with a ProviderImpl that uses the
322 // DataFetcherFactory factory. 322 // DataFetcherFactory factory.
323 void Init(ProviderImpl::DataFetcherFactory factory) { 323 void Init(ProviderImpl::DataFetcherFactory factory) {
324 provider_ = new ProviderImpl(factory); 324 provider_ = new ProviderImpl(factory);
325 Provider::SetInstanceForTests(provider_); 325 Provider::SetInstanceForTests(provider_.get());
326 } 326 }
327 327
328 protected: 328 protected:
329 // Number of pending expectations. 329 // Number of pending expectations.
330 int pending_expectations_; 330 int pending_expectations_;
331 331
332 // Provider instance under test. 332 // Provider instance under test.
333 scoped_refptr<Provider> provider_; 333 scoped_refptr<Provider> provider_;
334 334
335 // Message loop for the test thread. 335 // Message loop for the test thread.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
377 MockDeviceDataFactory::SetCurInstance(device_data_factory.get()); 377 MockDeviceDataFactory::SetCurInstance(device_data_factory.get());
378 Init(MockDeviceDataFactory::CreateDataFetcher); 378 Init(MockDeviceDataFactory::CreateDataFetcher);
379 scoped_refptr<Orientation> test_orientation(new Orientation()); 379 scoped_refptr<Orientation> test_orientation(new Orientation());
380 test_orientation->set_alpha(1); 380 test_orientation->set_alpha(1);
381 test_orientation->set_beta(2); 381 test_orientation->set_beta(2);
382 test_orientation->set_gamma(3); 382 test_orientation->set_gamma(3);
383 test_orientation->set_absolute(true); 383 test_orientation->set_absolute(true);
384 384
385 scoped_ptr<OrientationUpdateChecker> checker( 385 scoped_ptr<OrientationUpdateChecker> checker(
386 new OrientationUpdateChecker(&pending_expectations_)); 386 new OrientationUpdateChecker(&pending_expectations_));
387 checker->AddExpectation(test_orientation); 387 checker->AddExpectation(test_orientation.get());
388 device_data_factory->SetDeviceData(test_orientation, 388 device_data_factory->SetDeviceData(test_orientation.get(),
389 DeviceData::kTypeOrientation); 389 DeviceData::kTypeOrientation);
390 provider_->AddObserver(checker.get()); 390 provider_->AddObserver(checker.get());
391 base::MessageLoop::current()->Run(); 391 base::MessageLoop::current()->Run();
392 392
393 provider_->RemoveObserver(checker.get()); 393 provider_->RemoveObserver(checker.get());
394 MockDeviceDataFactory::SetCurInstance(NULL); 394 MockDeviceDataFactory::SetCurInstance(NULL);
395 } 395 }
396 396
397 // Tests multiple observers observing the same type of data. 397 // Tests multiple observers observing the same type of data.
398 TEST_F(DeviceOrientationProviderTest, MultipleObserversPushTest) { 398 TEST_F(DeviceOrientationProviderTest, MultipleObserversPushTest) {
399 scoped_refptr<MockDeviceDataFactory> device_data_factory( 399 scoped_refptr<MockDeviceDataFactory> device_data_factory(
(...skipping 18 matching lines...) Expand all
418 test_orientations[2]->set_gamma(9); 418 test_orientations[2]->set_gamma(9);
419 // can't provide absolute 419 // can't provide absolute
420 420
421 scoped_ptr<OrientationUpdateChecker> checker_a( 421 scoped_ptr<OrientationUpdateChecker> checker_a(
422 new OrientationUpdateChecker(&pending_expectations_)); 422 new OrientationUpdateChecker(&pending_expectations_));
423 scoped_ptr<OrientationUpdateChecker> checker_b( 423 scoped_ptr<OrientationUpdateChecker> checker_b(
424 new OrientationUpdateChecker(&pending_expectations_)); 424 new OrientationUpdateChecker(&pending_expectations_));
425 scoped_ptr<OrientationUpdateChecker> checker_c( 425 scoped_ptr<OrientationUpdateChecker> checker_c(
426 new OrientationUpdateChecker(&pending_expectations_)); 426 new OrientationUpdateChecker(&pending_expectations_));
427 427
428 checker_a->AddExpectation(test_orientations[0]); 428 checker_a->AddExpectation(test_orientations[0].get());
429 device_data_factory->SetDeviceData(test_orientations[0], 429 device_data_factory->SetDeviceData(test_orientations[0].get(),
430 DeviceData::kTypeOrientation); 430 DeviceData::kTypeOrientation);
431 provider_->AddObserver(checker_a.get()); 431 provider_->AddObserver(checker_a.get());
432 base::MessageLoop::current()->Run(); 432 base::MessageLoop::current()->Run();
433 433
434 checker_a->AddExpectation(test_orientations[1]); 434 checker_a->AddExpectation(test_orientations[1].get());
435 checker_b->AddExpectation(test_orientations[0]); 435 checker_b->AddExpectation(test_orientations[0].get());
436 checker_b->AddExpectation(test_orientations[1]); 436 checker_b->AddExpectation(test_orientations[1].get());
437 device_data_factory->SetDeviceData(test_orientations[1], 437 device_data_factory->SetDeviceData(test_orientations[1].get(),
438 DeviceData::kTypeOrientation); 438 DeviceData::kTypeOrientation);
439 provider_->AddObserver(checker_b.get()); 439 provider_->AddObserver(checker_b.get());
440 base::MessageLoop::current()->Run(); 440 base::MessageLoop::current()->Run();
441 441
442 provider_->RemoveObserver(checker_a.get()); 442 provider_->RemoveObserver(checker_a.get());
443 checker_b->AddExpectation(test_orientations[2]); 443 checker_b->AddExpectation(test_orientations[2].get());
444 checker_c->AddExpectation(test_orientations[1]); 444 checker_c->AddExpectation(test_orientations[1].get());
445 checker_c->AddExpectation(test_orientations[2]); 445 checker_c->AddExpectation(test_orientations[2].get());
446 device_data_factory->SetDeviceData(test_orientations[2], 446 device_data_factory->SetDeviceData(test_orientations[2].get(),
447 DeviceData::kTypeOrientation); 447 DeviceData::kTypeOrientation);
448 provider_->AddObserver(checker_c.get()); 448 provider_->AddObserver(checker_c.get());
449 base::MessageLoop::current()->Run(); 449 base::MessageLoop::current()->Run();
450 450
451 provider_->RemoveObserver(checker_b.get()); 451 provider_->RemoveObserver(checker_b.get());
452 provider_->RemoveObserver(checker_c.get()); 452 provider_->RemoveObserver(checker_c.get());
453 MockDeviceDataFactory::SetCurInstance(NULL); 453 MockDeviceDataFactory::SetCurInstance(NULL);
454 } 454 }
455 455
456 // Test for when the fetcher cannot provide the first type of data but can 456 // Test for when the fetcher cannot provide the first type of data but can
457 // provide the second type. 457 // provide the second type.
(...skipping 12 matching lines...) Expand all
470 scoped_refptr<Orientation> test_orientation(new Orientation()); 470 scoped_refptr<Orientation> test_orientation(new Orientation());
471 test_orientation->set_alpha(1); 471 test_orientation->set_alpha(1);
472 test_orientation->set_beta(2); 472 test_orientation->set_beta(2);
473 test_orientation->set_gamma(3); 473 test_orientation->set_gamma(3);
474 test_orientation->set_absolute(true); 474 test_orientation->set_absolute(true);
475 475
476 test_data_checker->AddExpectation(new TestData()); 476 test_data_checker->AddExpectation(new TestData());
477 provider_->AddObserver(test_data_checker.get()); 477 provider_->AddObserver(test_data_checker.get());
478 base::MessageLoop::current()->Run(); 478 base::MessageLoop::current()->Run();
479 479
480 orientation_checker->AddExpectation(test_orientation); 480 orientation_checker->AddExpectation(test_orientation.get());
481 device_data_factory->SetDeviceData(test_orientation, 481 device_data_factory->SetDeviceData(test_orientation.get(),
482 DeviceData::kTypeOrientation); 482 DeviceData::kTypeOrientation);
483 provider_->AddObserver(orientation_checker.get()); 483 provider_->AddObserver(orientation_checker.get());
484 base::MessageLoop::current()->Run(); 484 base::MessageLoop::current()->Run();
485 485
486 provider_->RemoveObserver(test_data_checker.get()); 486 provider_->RemoveObserver(test_data_checker.get());
487 provider_->RemoveObserver(orientation_checker.get()); 487 provider_->RemoveObserver(orientation_checker.get());
488 MockDeviceDataFactory::SetCurInstance(NULL); 488 MockDeviceDataFactory::SetCurInstance(NULL);
489 } 489 }
490 490
491 #if defined(OS_LINUX) || defined(OS_WIN) 491 #if defined(OS_LINUX) || defined(OS_WIN)
492 // Flakily DCHECKs on Linux. See crbug.com/104950. 492 // Flakily DCHECKs on Linux. See crbug.com/104950.
(...skipping 14 matching lines...) Expand all
507 test_orientation->set_absolute(true); 507 test_orientation->set_absolute(true);
508 508
509 scoped_refptr<Orientation> test_orientation2(new Orientation()); 509 scoped_refptr<Orientation> test_orientation2(new Orientation());
510 test_orientation2->set_alpha(4); 510 test_orientation2->set_alpha(4);
511 test_orientation2->set_beta(5); 511 test_orientation2->set_beta(5);
512 test_orientation2->set_gamma(6); 512 test_orientation2->set_gamma(6);
513 test_orientation2->set_absolute(false); 513 test_orientation2->set_absolute(false);
514 514
515 scoped_ptr<OrientationUpdateChecker> checker( 515 scoped_ptr<OrientationUpdateChecker> checker(
516 new OrientationUpdateChecker(&pending_expectations_)); 516 new OrientationUpdateChecker(&pending_expectations_));
517 checker->AddExpectation(test_orientation); 517 checker->AddExpectation(test_orientation.get());
518 device_data_factory->SetDeviceData(test_orientation, 518 device_data_factory->SetDeviceData(test_orientation.get(),
519 DeviceData::kTypeOrientation); 519 DeviceData::kTypeOrientation);
520 provider_->AddObserver(checker.get()); 520 provider_->AddObserver(checker.get());
521 base::MessageLoop::current()->Run(); 521 base::MessageLoop::current()->Run();
522 522
523 checker->AddExpectation(test_orientation2); 523 checker->AddExpectation(test_orientation2.get());
524 device_data_factory->SetDeviceData(test_orientation2, 524 device_data_factory->SetDeviceData(test_orientation2.get(),
525 DeviceData::kTypeOrientation); 525 DeviceData::kTypeOrientation);
526 base::MessageLoop::current()->Run(); 526 base::MessageLoop::current()->Run();
527 527
528 MockDeviceDataFactory::SetCurInstance(NULL); 528 MockDeviceDataFactory::SetCurInstance(NULL);
529 529
530 // Note that checker is not removed. This should not be a problem. 530 // Note that checker is not removed. This should not be a problem.
531 } 531 }
532 532
533 #if defined(OS_WIN) 533 #if defined(OS_WIN)
534 // FLAKY on Win. See crbug.com/104950. 534 // FLAKY on Win. See crbug.com/104950.
535 #define MAYBE_StartFailing DISABLED_StartFailing 535 #define MAYBE_StartFailing DISABLED_StartFailing
536 #else 536 #else
537 #define MAYBE_StartFailing StartFailing 537 #define MAYBE_StartFailing StartFailing
538 #endif 538 #endif
539 TEST_F(DeviceOrientationProviderTest, MAYBE_StartFailing) { 539 TEST_F(DeviceOrientationProviderTest, MAYBE_StartFailing) {
540 scoped_refptr<MockDeviceDataFactory> device_data_factory( 540 scoped_refptr<MockDeviceDataFactory> device_data_factory(
541 new MockDeviceDataFactory()); 541 new MockDeviceDataFactory());
542 MockDeviceDataFactory::SetCurInstance(device_data_factory.get()); 542 MockDeviceDataFactory::SetCurInstance(device_data_factory.get());
543 Init(MockDeviceDataFactory::CreateDataFetcher); 543 Init(MockDeviceDataFactory::CreateDataFetcher);
544 scoped_refptr<Orientation> test_orientation(new Orientation()); 544 scoped_refptr<Orientation> test_orientation(new Orientation());
545 test_orientation->set_alpha(1); 545 test_orientation->set_alpha(1);
546 test_orientation->set_beta(2); 546 test_orientation->set_beta(2);
547 test_orientation->set_gamma(3); 547 test_orientation->set_gamma(3);
548 test_orientation->set_absolute(true); 548 test_orientation->set_absolute(true);
549 549
550 scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker( 550 scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker(
551 &pending_expectations_)); 551 &pending_expectations_));
552 scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker( 552 scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker(
553 &pending_expectations_)); 553 &pending_expectations_));
554 554
555 device_data_factory->SetDeviceData(test_orientation, 555 device_data_factory->SetDeviceData(test_orientation.get(),
556 DeviceData::kTypeOrientation); 556 DeviceData::kTypeOrientation);
557 checker_a->AddExpectation(test_orientation); 557 checker_a->AddExpectation(test_orientation.get());
558 provider_->AddObserver(checker_a.get()); 558 provider_->AddObserver(checker_a.get());
559 base::MessageLoop::current()->Run(); 559 base::MessageLoop::current()->Run();
560 560
561 checker_a->AddExpectation(new Orientation()); 561 checker_a->AddExpectation(new Orientation());
562 device_data_factory->SetFailing(true); 562 device_data_factory->SetFailing(true);
563 base::MessageLoop::current()->Run(); 563 base::MessageLoop::current()->Run();
564 564
565 checker_b->AddExpectation(new Orientation()); 565 checker_b->AddExpectation(new Orientation());
566 provider_->AddObserver(checker_b.get()); 566 provider_->AddObserver(checker_b.get());
567 base::MessageLoop::current()->Run(); 567 base::MessageLoop::current()->Run();
(...skipping 19 matching lines...) Expand all
587 test_orientation2->set_alpha(4); 587 test_orientation2->set_alpha(4);
588 test_orientation2->set_beta(5); 588 test_orientation2->set_beta(5);
589 test_orientation2->set_gamma(6); 589 test_orientation2->set_gamma(6);
590 test_orientation2->set_absolute(false); 590 test_orientation2->set_absolute(false);
591 591
592 scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker( 592 scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker(
593 &pending_expectations_)); 593 &pending_expectations_));
594 scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker( 594 scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker(
595 &pending_expectations_)); 595 &pending_expectations_));
596 596
597 checker_a->AddExpectation(test_orientation); 597 checker_a->AddExpectation(test_orientation.get());
598 device_data_factory->SetDeviceData(test_orientation, 598 device_data_factory->SetDeviceData(test_orientation.get(),
599 DeviceData::kTypeOrientation); 599 DeviceData::kTypeOrientation);
600 provider_->AddObserver(checker_a.get()); 600 provider_->AddObserver(checker_a.get());
601 base::MessageLoop::current()->Run(); 601 base::MessageLoop::current()->Run();
602 602
603 provider_->RemoveObserver(checker_a.get()); // This stops the Provider. 603 provider_->RemoveObserver(checker_a.get()); // This stops the Provider.
604 604
605 checker_b->AddExpectation(test_orientation2); 605 checker_b->AddExpectation(test_orientation2.get());
606 device_data_factory->SetDeviceData(test_orientation2, 606 device_data_factory->SetDeviceData(test_orientation2.get(),
607 DeviceData::kTypeOrientation); 607 DeviceData::kTypeOrientation);
608 provider_->AddObserver(checker_b.get()); 608 provider_->AddObserver(checker_b.get());
609 base::MessageLoop::current()->Run(); 609 base::MessageLoop::current()->Run();
610 610
611 provider_->RemoveObserver(checker_b.get()); 611 provider_->RemoveObserver(checker_b.get());
612 MockDeviceDataFactory::SetCurInstance(NULL); 612 MockDeviceDataFactory::SetCurInstance(NULL);
613 } 613 }
614 614
615 // Tests that Motion events always fire, even if the motion is unchanged. 615 // Tests that Motion events always fire, even if the motion is unchanged.
616 TEST_F(DeviceOrientationProviderTest, FLAKY_MotionAlwaysFires) { 616 TEST_F(DeviceOrientationProviderTest, FLAKY_MotionAlwaysFires) {
617 scoped_refptr<MockDeviceDataFactory> device_data_factory( 617 scoped_refptr<MockDeviceDataFactory> device_data_factory(
618 new MockDeviceDataFactory()); 618 new MockDeviceDataFactory());
619 MockDeviceDataFactory::SetCurInstance(device_data_factory.get()); 619 MockDeviceDataFactory::SetCurInstance(device_data_factory.get());
620 Init(MockDeviceDataFactory::CreateDataFetcher); 620 Init(MockDeviceDataFactory::CreateDataFetcher);
621 621
622 scoped_refptr<Motion> test_motion(new Motion()); 622 scoped_refptr<Motion> test_motion(new Motion());
623 test_motion->set_acceleration_x(1); 623 test_motion->set_acceleration_x(1);
624 test_motion->set_acceleration_y(2); 624 test_motion->set_acceleration_y(2);
625 test_motion->set_acceleration_z(3); 625 test_motion->set_acceleration_z(3);
626 test_motion->set_acceleration_including_gravity_x(4); 626 test_motion->set_acceleration_including_gravity_x(4);
627 test_motion->set_acceleration_including_gravity_y(5); 627 test_motion->set_acceleration_including_gravity_y(5);
628 test_motion->set_acceleration_including_gravity_z(6); 628 test_motion->set_acceleration_including_gravity_z(6);
629 test_motion->set_rotation_rate_alpha(7); 629 test_motion->set_rotation_rate_alpha(7);
630 test_motion->set_rotation_rate_beta(8); 630 test_motion->set_rotation_rate_beta(8);
631 test_motion->set_rotation_rate_gamma(9); 631 test_motion->set_rotation_rate_gamma(9);
632 test_motion->set_interval(10); 632 test_motion->set_interval(10);
633 633
634 scoped_ptr<MotionUpdateChecker> checker(new MotionUpdateChecker( 634 scoped_ptr<MotionUpdateChecker> checker(new MotionUpdateChecker(
635 &pending_expectations_)); 635 &pending_expectations_));
636 636
637 device_data_factory->SetDeviceData(test_motion, DeviceData::kTypeMotion); 637 device_data_factory->SetDeviceData(test_motion.get(),
638 checker->AddExpectation(test_motion); 638 DeviceData::kTypeMotion);
639 checker->AddExpectation(test_motion.get());
639 provider_->AddObserver(checker.get()); 640 provider_->AddObserver(checker.get());
640 base::MessageLoop::current()->Run(); 641 base::MessageLoop::current()->Run();
641 642
642 // The observer should receive the same motion again. 643 // The observer should receive the same motion again.
643 device_data_factory->SetDeviceData(test_motion, DeviceData::kTypeMotion); 644 device_data_factory->SetDeviceData(test_motion.get(),
644 checker->AddExpectation(test_motion); 645 DeviceData::kTypeMotion);
646 checker->AddExpectation(test_motion.get());
645 base::MessageLoop::current()->Run(); 647 base::MessageLoop::current()->Run();
646 648
647 provider_->RemoveObserver(checker.get()); 649 provider_->RemoveObserver(checker.get());
648 MockDeviceDataFactory::SetCurInstance(NULL); 650 MockDeviceDataFactory::SetCurInstance(NULL);
649 } 651 }
650 652
651 // Tests that Orientation events only fire if the change is significant. 653 // Tests that Orientation events only fire if the change is significant.
652 TEST_F(DeviceOrientationProviderTest, OrientationSignificantlyDifferent) { 654 TEST_F(DeviceOrientationProviderTest, OrientationSignificantlyDifferent) {
653 scoped_refptr<MockDeviceDataFactory> device_data_factory( 655 scoped_refptr<MockDeviceDataFactory> device_data_factory(
654 new MockDeviceDataFactory()); 656 new MockDeviceDataFactory());
(...skipping 22 matching lines...) Expand all
677 third_orientation->set_alpha(kAlpha + kSignificantDifference); 679 third_orientation->set_alpha(kAlpha + kSignificantDifference);
678 third_orientation->set_beta(kBeta + kSignificantDifference); 680 third_orientation->set_beta(kBeta + kSignificantDifference);
679 third_orientation->set_gamma(kGamma + kSignificantDifference); 681 third_orientation->set_gamma(kGamma + kSignificantDifference);
680 // can't provide absolute 682 // can't provide absolute
681 683
682 scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker( 684 scoped_ptr<OrientationUpdateChecker> checker_a(new OrientationUpdateChecker(
683 &pending_expectations_)); 685 &pending_expectations_));
684 scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker( 686 scoped_ptr<OrientationUpdateChecker> checker_b(new OrientationUpdateChecker(
685 &pending_expectations_)); 687 &pending_expectations_));
686 688
687 device_data_factory->SetDeviceData(first_orientation, 689 device_data_factory->SetDeviceData(first_orientation.get(),
688 DeviceData::kTypeOrientation); 690 DeviceData::kTypeOrientation);
689 checker_a->AddExpectation(first_orientation); 691 checker_a->AddExpectation(first_orientation.get());
690 provider_->AddObserver(checker_a.get()); 692 provider_->AddObserver(checker_a.get());
691 base::MessageLoop::current()->Run(); 693 base::MessageLoop::current()->Run();
692 694
693 // The observers should not see this insignificantly different orientation. 695 // The observers should not see this insignificantly different orientation.
694 device_data_factory->SetDeviceData(second_orientation, 696 device_data_factory->SetDeviceData(second_orientation.get(),
695 DeviceData::kTypeOrientation); 697 DeviceData::kTypeOrientation);
696 checker_b->AddExpectation(first_orientation); 698 checker_b->AddExpectation(first_orientation.get());
697 provider_->AddObserver(checker_b.get()); 699 provider_->AddObserver(checker_b.get());
698 base::MessageLoop::current()->Run(); 700 base::MessageLoop::current()->Run();
699 701
700 device_data_factory->SetDeviceData(third_orientation, 702 device_data_factory->SetDeviceData(third_orientation.get(),
701 DeviceData::kTypeOrientation); 703 DeviceData::kTypeOrientation);
702 checker_a->AddExpectation(third_orientation); 704 checker_a->AddExpectation(third_orientation.get());
703 checker_b->AddExpectation(third_orientation); 705 checker_b->AddExpectation(third_orientation.get());
704 base::MessageLoop::current()->Run(); 706 base::MessageLoop::current()->Run();
705 707
706 provider_->RemoveObserver(checker_a.get()); 708 provider_->RemoveObserver(checker_a.get());
707 provider_->RemoveObserver(checker_b.get()); 709 provider_->RemoveObserver(checker_b.get());
708 MockDeviceDataFactory::SetCurInstance(NULL); 710 MockDeviceDataFactory::SetCurInstance(NULL);
709 } 711 }
710 712
711 } // namespace 713 } // namespace
712 714
713 } // namespace content 715 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/device_orientation/provider_impl.cc ('k') | content/browser/devtools/devtools_external_agent_proxy_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698