OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/command_line.h" | 5 #include "base/command_line.h" |
6 #include "base/memory/scoped_ptr.h" | 6 #include "base/memory/scoped_ptr.h" |
7 #include "base/path_service.h" | 7 #include "base/path_service.h" |
8 #include "base/strings/utf_string_conversions.h" | 8 #include "base/strings/utf_string_conversions.h" |
9 #include "base/win/windows_version.h" | 9 #include "base/win/windows_version.h" |
10 #include "chrome/browser/media/media_browsertest.h" | 10 #include "chrome/browser/media/media_browsertest.h" |
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
305 // decrypt-and-decode mode. | 305 // decrypt-and-decode mode. |
306 class ECKEncryptedMediaTest : public EncryptedMediaTestBase { | 306 class ECKEncryptedMediaTest : public EncryptedMediaTestBase { |
307 public: | 307 public: |
308 // We use special |key_system| names to do non-playback related tests, e.g. | 308 // We use special |key_system| names to do non-playback related tests, e.g. |
309 // kExternalClearKeyFileIOTestKeySystem is used to test file IO. | 309 // kExternalClearKeyFileIOTestKeySystem is used to test file IO. |
310 void TestNonPlaybackCases(const std::string& key_system, | 310 void TestNonPlaybackCases(const std::string& key_system, |
311 const std::string& expected_title) { | 311 const std::string& expected_title) { |
312 // Since we do not test playback, arbitrarily choose a test file and source | 312 // Since we do not test playback, arbitrarily choose a test file and source |
313 // type. | 313 // type. |
314 RunEncryptedMediaTest(kDefaultEmePlayer, | 314 RunEncryptedMediaTest(kDefaultEmePlayer, |
315 "bear-a-enc_a.webm", | 315 "bear-a_enc-a.webm", |
316 kWebMAudioOnly, | 316 kWebMAudioOnly, |
317 key_system, | 317 key_system, |
318 SRC, | 318 SRC, |
319 PREFIXED, | 319 PREFIXED, |
320 kNoSessionToLoad, | 320 kNoSessionToLoad, |
321 false, | 321 false, |
322 expected_title); | 322 expected_title); |
323 } | 323 } |
324 | 324 |
325 protected: | 325 protected: |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 const std::string& media_type) { | 372 const std::string& media_type) { |
373 RunSimpleEncryptedMediaTest(encrypted_media, | 373 RunSimpleEncryptedMediaTest(encrypted_media, |
374 media_type, | 374 media_type, |
375 CurrentKeySystem(), | 375 CurrentKeySystem(), |
376 CurrentSourceType(), | 376 CurrentSourceType(), |
377 CurrentEmeVersion()); | 377 CurrentEmeVersion()); |
378 } | 378 } |
379 | 379 |
380 void RunInvalidResponseTest() { | 380 void RunInvalidResponseTest() { |
381 RunEncryptedMediaTest(kDefaultEmePlayer, | 381 RunEncryptedMediaTest(kDefaultEmePlayer, |
382 "bear-320x240-av-enc_av.webm", | 382 "bear-320x240-av_enc-av.webm", |
383 kWebMAudioVideo, | 383 kWebMAudioVideo, |
384 CurrentKeySystem(), | 384 CurrentKeySystem(), |
385 CurrentSourceType(), | 385 CurrentSourceType(), |
386 CurrentEmeVersion(), | 386 CurrentEmeVersion(), |
387 kNoSessionToLoad, | 387 kNoSessionToLoad, |
388 true, | 388 true, |
389 kEmeKeyError); | 389 kEmeKeyError); |
390 } | 390 } |
391 | 391 |
392 void TestFrameSizeChange() { | 392 void TestFrameSizeChange() { |
393 RunEncryptedMediaTest("encrypted_frame_size_change.html", | 393 RunEncryptedMediaTest("encrypted_frame_size_change.html", |
394 "frame_size_change-av-enc-v.webm", | 394 "frame_size_change-av_enc-v.webm", |
395 kWebMAudioVideo, | 395 kWebMAudioVideo, |
396 CurrentKeySystem(), | 396 CurrentKeySystem(), |
397 CurrentSourceType(), | 397 CurrentSourceType(), |
398 CurrentEmeVersion(), | 398 CurrentEmeVersion(), |
399 kNoSessionToLoad, | 399 kNoSessionToLoad, |
400 false, | 400 false, |
401 kEnded); | 401 kEnded); |
402 } | 402 } |
403 | 403 |
404 void TestConfigChange() { | 404 void TestConfigChange() { |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
504 #if !defined(WIDEVINE_CDM_IS_COMPONENT) | 504 #if !defined(WIDEVINE_CDM_IS_COMPONENT) |
505 INSTANTIATE_TEST_CASE_P(MSE_Widevine, | 505 INSTANTIATE_TEST_CASE_P(MSE_Widevine, |
506 EncryptedMediaTest, | 506 EncryptedMediaTest, |
507 Combine(Values(kWidevineKeySystem), | 507 Combine(Values(kWidevineKeySystem), |
508 Values(MSE), | 508 Values(MSE), |
509 Values(UNPREFIXED))); | 509 Values(UNPREFIXED))); |
510 #endif // !defined(WIDEVINE_CDM_IS_COMPONENT) | 510 #endif // !defined(WIDEVINE_CDM_IS_COMPONENT) |
511 #endif // defined(WIDEVINE_CDM_AVAILABLE) | 511 #endif // defined(WIDEVINE_CDM_AVAILABLE) |
512 | 512 |
513 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioOnly_WebM) { | 513 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioOnly_WebM) { |
514 TestSimplePlayback("bear-a-enc_a.webm", kWebMAudioOnly); | 514 TestSimplePlayback("bear-a_enc-a.webm", kWebMAudioOnly); |
515 } | 515 } |
516 | 516 |
517 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioClearVideo_WebM) { | 517 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_AudioClearVideo_WebM) { |
518 TestSimplePlayback("bear-320x240-av-enc_a.webm", kWebMAudioVideo); | 518 TestSimplePlayback("bear-320x240-av_enc-a.webm", kWebMAudioVideo); |
519 } | 519 } |
520 | 520 |
521 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoAudio_WebM) { | 521 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoAudio_WebM) { |
522 TestSimplePlayback("bear-320x240-av-enc_av.webm", kWebMAudioVideo); | 522 TestSimplePlayback("bear-320x240-av_enc-av.webm", kWebMAudioVideo); |
523 } | 523 } |
524 | 524 |
525 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoOnly_WebM) { | 525 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoOnly_WebM) { |
526 TestSimplePlayback("bear-320x240-v-enc_v.webm", kWebMVideoOnly); | 526 TestSimplePlayback("bear-320x240-v_enc-v.webm", kWebMVideoOnly); |
527 } | 527 } |
528 | 528 |
529 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoClearAudio_WebM) { | 529 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VideoClearAudio_WebM) { |
530 TestSimplePlayback("bear-320x240-av-enc_v.webm", kWebMAudioVideo); | 530 TestSimplePlayback("bear-320x240-av_enc-v.webm", kWebMAudioVideo); |
531 } | 531 } |
532 | 532 |
533 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VP9Video_WebM) { | 533 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, Playback_VP9Video_WebM) { |
534 TestSimplePlayback("bear-320x240-v-vp9-enc_v.webm", kWebMVP9VideoOnly); | 534 TestSimplePlayback("bear-320x240-v-vp9_enc-v.webm", kWebMVP9VideoOnly); |
535 } | 535 } |
536 | 536 |
537 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, InvalidResponseKeyError) { | 537 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, InvalidResponseKeyError) { |
538 RunInvalidResponseTest(); | 538 RunInvalidResponseTest(); |
539 } | 539 } |
540 | 540 |
541 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, ConfigChangeVideo) { | 541 IN_PROC_BROWSER_TEST_P(EncryptedMediaTest, ConfigChangeVideo) { |
542 if (CurrentSourceType() != MSE || !IsMSESupported()) { | 542 if (CurrentSourceType() != MSE || !IsMSESupported()) { |
543 VLOG(0) << "Skipping test - ConfigChange test requires MSE."; | 543 VLOG(0) << "Skipping test - ConfigChange test requires MSE."; |
544 return; | 544 return; |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
580 return; | 580 return; |
581 } | 581 } |
582 TestSimplePlayback("bear-640x360-a_frag-cenc.mp4", kMP4AudioOnly); | 582 TestSimplePlayback("bear-640x360-a_frag-cenc.mp4", kMP4AudioOnly); |
583 } | 583 } |
584 #endif // defined(USE_PROPRIETARY_CODECS) | 584 #endif // defined(USE_PROPRIETARY_CODECS) |
585 | 585 |
586 #if defined(WIDEVINE_CDM_AVAILABLE) | 586 #if defined(WIDEVINE_CDM_AVAILABLE) |
587 // The parent key system cannot be used in generateKeyRequest. | 587 // The parent key system cannot be used in generateKeyRequest. |
588 IN_PROC_BROWSER_TEST_F(WVEncryptedMediaTest, ParentThrowsException_Prefixed) { | 588 IN_PROC_BROWSER_TEST_F(WVEncryptedMediaTest, ParentThrowsException_Prefixed) { |
589 RunEncryptedMediaTest(kDefaultEmePlayer, | 589 RunEncryptedMediaTest(kDefaultEmePlayer, |
590 "bear-a-enc_a.webm", | 590 "bear-a_enc-a.webm", |
591 kWebMAudioOnly, | 591 kWebMAudioOnly, |
592 "com.widevine", | 592 "com.widevine", |
593 MSE, | 593 MSE, |
594 PREFIXED, | 594 PREFIXED, |
595 kNoSessionToLoad, | 595 kNoSessionToLoad, |
596 false, | 596 false, |
597 kEmeNotSupportedError); | 597 kEmeNotSupportedError); |
598 } | 598 } |
599 | 599 |
600 // TODO(jrummell): http://crbug.com/349181 | 600 // TODO(jrummell): http://crbug.com/349181 |
601 // The parent key system cannot be used when creating MediaKeys. | 601 // The parent key system cannot be used when creating MediaKeys. |
602 IN_PROC_BROWSER_TEST_F(WVEncryptedMediaTest, ParentThrowsException) { | 602 IN_PROC_BROWSER_TEST_F(WVEncryptedMediaTest, ParentThrowsException) { |
603 RunEncryptedMediaTest(kDefaultEmePlayer, | 603 RunEncryptedMediaTest(kDefaultEmePlayer, |
604 "bear-a-enc_a.webm", | 604 "bear-a_enc-a.webm", |
605 kWebMAudioOnly, | 605 kWebMAudioOnly, |
606 "com.widevine", | 606 "com.widevine", |
607 MSE, | 607 MSE, |
608 UNPREFIXED, | 608 UNPREFIXED, |
609 kNoSessionToLoad, | 609 kNoSessionToLoad, |
610 false, | 610 false, |
611 kEmeNotSupportedError); | 611 kEmeNotSupportedError); |
612 } | 612 } |
613 #endif // defined(WIDEVINE_CDM_AVAILABLE) | 613 #endif // defined(WIDEVINE_CDM_AVAILABLE) |
614 | 614 |
(...skipping 18 matching lines...) Expand all Loading... |
633 "plugin crash"); | 633 "plugin crash"); |
634 } | 634 } |
635 | 635 |
636 IN_PROC_BROWSER_TEST_F(ECKEncryptedMediaTest, FileIOTest) { | 636 IN_PROC_BROWSER_TEST_F(ECKEncryptedMediaTest, FileIOTest) { |
637 TestNonPlaybackCases(kExternalClearKeyFileIOTestKeySystem, | 637 TestNonPlaybackCases(kExternalClearKeyFileIOTestKeySystem, |
638 kFileIOTestSuccess); | 638 kFileIOTestSuccess); |
639 } | 639 } |
640 | 640 |
641 IN_PROC_BROWSER_TEST_F(ECKEncryptedMediaTest, LoadLoadableSession) { | 641 IN_PROC_BROWSER_TEST_F(ECKEncryptedMediaTest, LoadLoadableSession) { |
642 RunEncryptedMediaTest(kDefaultEmePlayer, | 642 RunEncryptedMediaTest(kDefaultEmePlayer, |
643 "bear-320x240-v-enc_v.webm", | 643 "bear-320x240-v_enc-v.webm", |
644 kWebMVideoOnly, | 644 kWebMVideoOnly, |
645 kExternalClearKeyKeySystem, | 645 kExternalClearKeyKeySystem, |
646 SRC, | 646 SRC, |
647 PREFIXED, | 647 PREFIXED, |
648 kLoadableSession, | 648 kLoadableSession, |
649 false, | 649 false, |
650 kEnded); | 650 kEnded); |
651 } | 651 } |
652 | 652 |
653 IN_PROC_BROWSER_TEST_F(ECKEncryptedMediaTest, LoadUnknownSession) { | 653 IN_PROC_BROWSER_TEST_F(ECKEncryptedMediaTest, LoadUnknownSession) { |
654 // TODO(xhwang): Add a specific error for this failure, e.g. kSessionNotFound. | 654 // TODO(xhwang): Add a specific error for this failure, e.g. kSessionNotFound. |
655 RunEncryptedMediaTest(kDefaultEmePlayer, | 655 RunEncryptedMediaTest(kDefaultEmePlayer, |
656 "bear-320x240-v-enc_v.webm", | 656 "bear-320x240-v_enc-v.webm", |
657 kWebMVideoOnly, | 657 kWebMVideoOnly, |
658 kExternalClearKeyKeySystem, | 658 kExternalClearKeyKeySystem, |
659 SRC, | 659 SRC, |
660 PREFIXED, | 660 PREFIXED, |
661 kUnknownSession, | 661 kUnknownSession, |
662 false, | 662 false, |
663 kEmeKeyError); | 663 kEmeKeyError); |
664 } | 664 } |
665 #endif // defined(ENABLE_PEPPER_CDMS) | 665 #endif // defined(ENABLE_PEPPER_CDMS) |
OLD | NEW |