| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * libjingle | 2  * libjingle | 
| 3  * Copyright 2012 Google Inc. | 3  * Copyright 2012 Google Inc. | 
| 4  * | 4  * | 
| 5  * Redistribution and use in source and binary forms, with or without | 5  * Redistribution and use in source and binary forms, with or without | 
| 6  * modification, are permitted provided that the following conditions are met: | 6  * modification, are permitted provided that the following conditions are met: | 
| 7  * | 7  * | 
| 8  *  1. Redistributions of source code must retain the above copyright notice, | 8  *  1. Redistributions of source code must retain the above copyright notice, | 
| 9  *     this list of conditions and the following disclaimer. | 9  *     this list of conditions and the following disclaimer. | 
| 10  *  2. Redistributions in binary form must reproduce the above copyright notice, | 10  *  2. Redistributions in binary form must reproduce the above copyright notice, | 
| (...skipping 374 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 385   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 385   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 
| 386                  kMaxWaitMs); | 386                  kMaxWaitMs); | 
| 387 } | 387 } | 
| 388 | 388 | 
| 389 TEST_F(VideoSourceTest, SetValidOptionValues) { | 389 TEST_F(VideoSourceTest, SetValidOptionValues) { | 
| 390   FakeConstraints constraints; | 390   FakeConstraints constraints; | 
| 391   constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, "false"); | 391   constraints.AddMandatory(MediaConstraintsInterface::kNoiseReduction, "false"); | 
| 392 | 392 | 
| 393   CreateVideoSource(&constraints); | 393   CreateVideoSource(&constraints); | 
| 394 | 394 | 
| 395   bool value = true; | 395   EXPECT_EQ(rtc::Maybe<bool>(false), source_->options()->video_noise_reduction); | 
| 396   EXPECT_TRUE(source_->options()->video_noise_reduction.Get(&value)); |  | 
| 397   EXPECT_FALSE(value); |  | 
| 398 } | 396 } | 
| 399 | 397 | 
| 400 TEST_F(VideoSourceTest, OptionNotSet) { | 398 TEST_F(VideoSourceTest, OptionNotSet) { | 
| 401   FakeConstraints constraints; | 399   FakeConstraints constraints; | 
| 402   CreateVideoSource(&constraints); | 400   CreateVideoSource(&constraints); | 
| 403   bool value; | 401   EXPECT_EQ(rtc::Maybe<bool>(), source_->options()->video_noise_reduction); | 
| 404   EXPECT_FALSE(source_->options()->video_noise_reduction.Get(&value)); |  | 
| 405 } | 402 } | 
| 406 | 403 | 
| 407 TEST_F(VideoSourceTest, MandatoryOptionOverridesOptional) { | 404 TEST_F(VideoSourceTest, MandatoryOptionOverridesOptional) { | 
| 408   FakeConstraints constraints; | 405   FakeConstraints constraints; | 
| 409   constraints.AddMandatory( | 406   constraints.AddMandatory( | 
| 410       MediaConstraintsInterface::kNoiseReduction, true); | 407       MediaConstraintsInterface::kNoiseReduction, true); | 
| 411   constraints.AddOptional( | 408   constraints.AddOptional( | 
| 412       MediaConstraintsInterface::kNoiseReduction, false); | 409       MediaConstraintsInterface::kNoiseReduction, false); | 
| 413 | 410 | 
| 414   CreateVideoSource(&constraints); | 411   CreateVideoSource(&constraints); | 
| 415 | 412 | 
| 416   bool value = false; | 413   EXPECT_EQ(rtc::Maybe<bool>(true), source_->options()->video_noise_reduction); | 
| 417   EXPECT_TRUE(source_->options()->video_noise_reduction.Get(&value)); |  | 
| 418   EXPECT_TRUE(value); |  | 
| 419 } | 414 } | 
| 420 | 415 | 
| 421 TEST_F(VideoSourceTest, InvalidOptionKeyOptional) { | 416 TEST_F(VideoSourceTest, InvalidOptionKeyOptional) { | 
| 422   FakeConstraints constraints; | 417   FakeConstraints constraints; | 
| 423   constraints.AddOptional( | 418   constraints.AddOptional( | 
| 424       MediaConstraintsInterface::kNoiseReduction, false); | 419       MediaConstraintsInterface::kNoiseReduction, false); | 
| 425   constraints.AddOptional("invalidKey", false); | 420   constraints.AddOptional("invalidKey", false); | 
| 426 | 421 | 
| 427   CreateVideoSource(&constraints); | 422   CreateVideoSource(&constraints); | 
| 428 | 423 | 
| 429   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 424   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 
| 430       kMaxWaitMs); | 425       kMaxWaitMs); | 
| 431   bool value = true; | 426   EXPECT_EQ(rtc::Maybe<bool>(false), source_->options()->video_noise_reduction); | 
| 432   EXPECT_TRUE(source_->options()->video_noise_reduction.Get(&value)); |  | 
| 433   EXPECT_FALSE(value); |  | 
| 434 } | 427 } | 
| 435 | 428 | 
| 436 TEST_F(VideoSourceTest, InvalidOptionKeyMandatory) { | 429 TEST_F(VideoSourceTest, InvalidOptionKeyMandatory) { | 
| 437   FakeConstraints constraints; | 430   FakeConstraints constraints; | 
| 438   constraints.AddMandatory( | 431   constraints.AddMandatory( | 
| 439       MediaConstraintsInterface::kNoiseReduction, false); | 432       MediaConstraintsInterface::kNoiseReduction, false); | 
| 440   constraints.AddMandatory("invalidKey", false); | 433   constraints.AddMandatory("invalidKey", false); | 
| 441 | 434 | 
| 442   CreateVideoSource(&constraints); | 435   CreateVideoSource(&constraints); | 
| 443 | 436 | 
| 444   EXPECT_EQ_WAIT(MediaSourceInterface::kEnded, state_observer_->state(), | 437   EXPECT_EQ_WAIT(MediaSourceInterface::kEnded, state_observer_->state(), | 
| 445       kMaxWaitMs); | 438       kMaxWaitMs); | 
| 446   bool value; | 439   EXPECT_EQ(rtc::Maybe<bool>(), source_->options()->video_noise_reduction); | 
| 447   EXPECT_FALSE(source_->options()->video_noise_reduction.Get(&value)); |  | 
| 448 } | 440 } | 
| 449 | 441 | 
| 450 TEST_F(VideoSourceTest, InvalidOptionValueOptional) { | 442 TEST_F(VideoSourceTest, InvalidOptionValueOptional) { | 
| 451   FakeConstraints constraints; | 443   FakeConstraints constraints; | 
| 452   constraints.AddOptional( | 444   constraints.AddOptional( | 
| 453       MediaConstraintsInterface::kNoiseReduction, "not a boolean"); | 445       MediaConstraintsInterface::kNoiseReduction, "not a boolean"); | 
| 454 | 446 | 
| 455   CreateVideoSource(&constraints); | 447   CreateVideoSource(&constraints); | 
| 456 | 448 | 
| 457   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 449   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 
| 458       kMaxWaitMs); | 450       kMaxWaitMs); | 
| 459   bool value = false; | 451   EXPECT_EQ(rtc::Maybe<bool>(), source_->options()->video_noise_reduction); | 
| 460   EXPECT_FALSE(source_->options()->video_noise_reduction.Get(&value)); |  | 
| 461 } | 452 } | 
| 462 | 453 | 
| 463 TEST_F(VideoSourceTest, InvalidOptionValueMandatory) { | 454 TEST_F(VideoSourceTest, InvalidOptionValueMandatory) { | 
| 464   FakeConstraints constraints; | 455   FakeConstraints constraints; | 
| 465   // Optional constraints should be ignored if the mandatory constraints fail. | 456   // Optional constraints should be ignored if the mandatory constraints fail. | 
| 466   constraints.AddOptional( | 457   constraints.AddOptional( | 
| 467       MediaConstraintsInterface::kNoiseReduction, "false"); | 458       MediaConstraintsInterface::kNoiseReduction, "false"); | 
| 468   // Values are case-sensitive and must be all lower-case. | 459   // Values are case-sensitive and must be all lower-case. | 
| 469   constraints.AddMandatory( | 460   constraints.AddMandatory( | 
| 470       MediaConstraintsInterface::kNoiseReduction, "True"); | 461       MediaConstraintsInterface::kNoiseReduction, "True"); | 
| 471 | 462 | 
| 472   CreateVideoSource(&constraints); | 463   CreateVideoSource(&constraints); | 
| 473 | 464 | 
| 474   EXPECT_EQ_WAIT(MediaSourceInterface::kEnded, state_observer_->state(), | 465   EXPECT_EQ_WAIT(MediaSourceInterface::kEnded, state_observer_->state(), | 
| 475       kMaxWaitMs); | 466       kMaxWaitMs); | 
| 476   bool value; | 467   EXPECT_EQ(rtc::Maybe<bool>(), source_->options()->video_noise_reduction); | 
| 477   EXPECT_FALSE(source_->options()->video_noise_reduction.Get(&value)); |  | 
| 478 } | 468 } | 
| 479 | 469 | 
| 480 TEST_F(VideoSourceTest, MixedOptionsAndConstraints) { | 470 TEST_F(VideoSourceTest, MixedOptionsAndConstraints) { | 
| 481   FakeConstraints constraints; | 471   FakeConstraints constraints; | 
| 482   constraints.AddMandatory(MediaConstraintsInterface::kMaxWidth, 352); | 472   constraints.AddMandatory(MediaConstraintsInterface::kMaxWidth, 352); | 
| 483   constraints.AddMandatory(MediaConstraintsInterface::kMaxHeight, 288); | 473   constraints.AddMandatory(MediaConstraintsInterface::kMaxHeight, 288); | 
| 484   constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 5); | 474   constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 5); | 
| 485 | 475 | 
| 486   constraints.AddMandatory( | 476   constraints.AddMandatory( | 
| 487       MediaConstraintsInterface::kNoiseReduction, false); | 477       MediaConstraintsInterface::kNoiseReduction, false); | 
| 488   constraints.AddOptional( | 478   constraints.AddOptional( | 
| 489       MediaConstraintsInterface::kNoiseReduction, true); | 479       MediaConstraintsInterface::kNoiseReduction, true); | 
| 490 | 480 | 
| 491   CreateVideoSource(&constraints); | 481   CreateVideoSource(&constraints); | 
| 492   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 482   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 
| 493                  kMaxWaitMs); | 483                  kMaxWaitMs); | 
| 494   const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); | 484   const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); | 
| 495   ASSERT_TRUE(format != NULL); | 485   ASSERT_TRUE(format != NULL); | 
| 496   EXPECT_EQ(352, format->width); | 486   EXPECT_EQ(352, format->width); | 
| 497   EXPECT_EQ(288, format->height); | 487   EXPECT_EQ(288, format->height); | 
| 498   EXPECT_EQ(30, format->framerate()); | 488   EXPECT_EQ(30, format->framerate()); | 
| 499 | 489 | 
| 500   bool value = true; | 490   EXPECT_EQ(rtc::Maybe<bool>(false), source_->options()->video_noise_reduction); | 
| 501   EXPECT_TRUE(source_->options()->video_noise_reduction.Get(&value)); |  | 
| 502   EXPECT_FALSE(value); |  | 
| 503 } | 491 } | 
| 504 | 492 | 
| 505 // Tests that the source starts video with the default resolution for | 493 // Tests that the source starts video with the default resolution for | 
| 506 // screencast if no constraint is set. | 494 // screencast if no constraint is set. | 
| 507 TEST_F(VideoSourceTest, ScreencastResolutionNoConstraint) { | 495 TEST_F(VideoSourceTest, ScreencastResolutionNoConstraint) { | 
| 508   capturer_->TestWithoutCameraFormats(); | 496   capturer_->TestWithoutCameraFormats(); | 
| 509   capturer_->SetScreencast(true); | 497   capturer_->SetScreencast(true); | 
| 510 | 498 | 
| 511   CreateVideoSource(); | 499   CreateVideoSource(); | 
| 512   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 500   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 553   constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 0.5); | 541   constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 0.5); | 
| 554 | 542 | 
| 555   CreateVideoSource(&constraints); | 543   CreateVideoSource(&constraints); | 
| 556   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 544   EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), | 
| 557                  kMaxWaitMs); | 545                  kMaxWaitMs); | 
| 558   const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); | 546   const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); | 
| 559   ASSERT_TRUE(format != NULL); | 547   ASSERT_TRUE(format != NULL); | 
| 560   EXPECT_EQ(30, format->framerate()); | 548   EXPECT_EQ(30, format->framerate()); | 
| 561 } | 549 } | 
| 562 | 550 | 
| OLD | NEW | 
|---|