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

Side by Side Diff: content/renderer/media/user_media_client_impl_unittest.cc

Issue 2379293002: Rename RFO::FrameWillClose() to reflect its actual purpose. (Closed)
Patch Set: Fix silly typo Created 4 years, 2 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
« no previous file with comments | « content/renderer/media/user_media_client_impl.cc ('k') | content/renderer/render_frame_impl.cc » ('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 "content/renderer/media/user_media_client_impl.h" 5 #include "content/renderer/media/user_media_client_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <memory> 9 #include <memory>
10 #include <utility> 10 #include <utility>
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 used_media_impl_.reset(new UserMediaClientImplUnderTest( 220 used_media_impl_.reset(new UserMediaClientImplUnderTest(
221 dependency_factory_.get(), 221 dependency_factory_.get(),
222 std::unique_ptr<MediaStreamDispatcher>(ms_dispatcher_))); 222 std::unique_ptr<MediaStreamDispatcher>(ms_dispatcher_)));
223 } 223 }
224 224
225 void TearDown() override { 225 void TearDown() override {
226 used_media_impl_.reset(); 226 used_media_impl_.reset();
227 blink::WebHeap::collectAllGarbageForTesting(); 227 blink::WebHeap::collectAllGarbageForTesting();
228 } 228 }
229 229
230 void LoadNewDocumentInFrame() {
231 used_media_impl_->WillCommitProvisionalLoad();
232 }
233
230 blink::WebMediaStream RequestLocalMediaStream() { 234 blink::WebMediaStream RequestLocalMediaStream() {
231 used_media_impl_->RequestUserMedia(); 235 used_media_impl_->RequestUserMedia();
232 FakeMediaStreamDispatcherRequestUserMediaComplete(); 236 FakeMediaStreamDispatcherRequestUserMediaComplete();
233 StartMockedVideoSource(); 237 StartMockedVideoSource();
234 238
235 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_SUCCEEDED, 239 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_SUCCEEDED,
236 used_media_impl_->request_state()); 240 used_media_impl_->request_state());
237 241
238 blink::WebMediaStream desc = used_media_impl_->last_generated_stream(); 242 blink::WebMediaStream desc = used_media_impl_->last_generated_stream();
239 content::MediaStream* native_stream = 243 content::MediaStream* native_stream =
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 // Makes sure the test itself don't hold a reference to the created 453 // Makes sure the test itself don't hold a reference to the created
450 // MediaStream. 454 // MediaStream.
451 used_media_impl_->ClearLastGeneratedStream(); 455 used_media_impl_->ClearLastGeneratedStream();
452 blink::WebHeap::collectAllGarbageForTesting(); 456 blink::WebHeap::collectAllGarbageForTesting();
453 457
454 // Expect the sources to be stopped when the MediaStream goes out of scope. 458 // Expect the sources to be stopped when the MediaStream goes out of scope.
455 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 459 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
456 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 460 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
457 } 461 }
458 462
459 // Test that the MediaStreams are deleted if the owning WebFrame is closing. 463 // Test that the MediaStreams are deleted if a new document is loaded in the
460 // In the unit test the owning frame is NULL. 464 // frame.
461 TEST_F(UserMediaClientImplTest, FrameWillClose) { 465 TEST_F(UserMediaClientImplTest, LoadNewDocumentInFrame) {
462 // Test a stream with both audio and video. 466 // Test a stream with both audio and video.
463 blink::WebMediaStream mixed_desc = RequestLocalMediaStream(); 467 blink::WebMediaStream mixed_desc = RequestLocalMediaStream();
464 blink::WebMediaStream desc2 = RequestLocalMediaStream(); 468 blink::WebMediaStream desc2 = RequestLocalMediaStream();
465 used_media_impl_->FrameWillClose(); 469 LoadNewDocumentInFrame();
466 blink::WebHeap::collectAllGarbageForTesting(); 470 blink::WebHeap::collectAllGarbageForTesting();
467 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 471 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
468 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 472 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
469 } 473 }
470 474
471 // This test what happens if a video source to a MediaSteam fails to start. 475 // This test what happens if a video source to a MediaSteam fails to start.
472 TEST_F(UserMediaClientImplTest, MediaVideoSourceFailToStart) { 476 TEST_F(UserMediaClientImplTest, MediaVideoSourceFailToStart) {
473 used_media_impl_->RequestUserMedia(); 477 used_media_impl_->RequestUserMedia();
474 FakeMediaStreamDispatcherRequestUserMediaComplete(); 478 FakeMediaStreamDispatcherRequestUserMediaComplete();
475 FailToStartMockedVideoSource(); 479 FailToStartMockedVideoSource();
(...skipping 27 matching lines...) Expand all
503 // started. 507 // started.
504 TEST_F(UserMediaClientImplTest, MediaStreamImplShutDown) { 508 TEST_F(UserMediaClientImplTest, MediaStreamImplShutDown) {
505 used_media_impl_->RequestUserMedia(); 509 used_media_impl_->RequestUserMedia();
506 FakeMediaStreamDispatcherRequestUserMediaComplete(); 510 FakeMediaStreamDispatcherRequestUserMediaComplete();
507 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter()); 511 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter());
508 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_NOT_COMPLETE, 512 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_NOT_COMPLETE,
509 used_media_impl_->request_state()); 513 used_media_impl_->request_state());
510 used_media_impl_.reset(); 514 used_media_impl_.reset();
511 } 515 }
512 516
513 // This test what happens if the WebFrame is closed while the MediaStream is 517 // This test what happens if a new document is loaded in the frame while the
514 // being generated by the MediaStreamDispatcher. 518 // MediaStream is being generated by the MediaStreamDispatcher.
515 TEST_F(UserMediaClientImplTest, ReloadFrameWhileGeneratingStream) { 519 TEST_F(UserMediaClientImplTest, ReloadFrameWhileGeneratingStream) {
516 used_media_impl_->RequestUserMedia(); 520 used_media_impl_->RequestUserMedia();
517 used_media_impl_->FrameWillClose(); 521 LoadNewDocumentInFrame();
518 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter()); 522 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter());
519 EXPECT_EQ(0, ms_dispatcher_->stop_audio_device_counter()); 523 EXPECT_EQ(0, ms_dispatcher_->stop_audio_device_counter());
520 EXPECT_EQ(0, ms_dispatcher_->stop_video_device_counter()); 524 EXPECT_EQ(0, ms_dispatcher_->stop_video_device_counter());
521 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_NOT_COMPLETE, 525 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_NOT_COMPLETE,
522 used_media_impl_->request_state()); 526 used_media_impl_->request_state());
523 } 527 }
524 528
525 // This test what happens if the WebFrame is closed while the sources are being 529 // This test what happens if a newdocument is loaded in the frame while the
526 // started. 530 // sources are being started.
527 TEST_F(UserMediaClientImplTest, ReloadFrameWhileGeneratingSources) { 531 TEST_F(UserMediaClientImplTest, ReloadFrameWhileGeneratingSources) {
528 used_media_impl_->RequestUserMedia(); 532 used_media_impl_->RequestUserMedia();
529 FakeMediaStreamDispatcherRequestUserMediaComplete(); 533 FakeMediaStreamDispatcherRequestUserMediaComplete();
530 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter()); 534 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter());
531 used_media_impl_->FrameWillClose(); 535 LoadNewDocumentInFrame();
532 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 536 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
533 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 537 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
534 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_NOT_COMPLETE, 538 EXPECT_EQ(UserMediaClientImplUnderTest::REQUEST_NOT_COMPLETE,
535 used_media_impl_->request_state()); 539 used_media_impl_->request_state());
536 } 540 }
537 541
538 // This test what happens if stop is called on a track after the frame has 542 // This test what happens if stop is called on a track after the frame has
539 // been reloaded. 543 // been reloaded.
540 TEST_F(UserMediaClientImplTest, StopTrackAfterReload) { 544 TEST_F(UserMediaClientImplTest, StopTrackAfterReload) {
541 blink::WebMediaStream mixed_desc = RequestLocalMediaStream(); 545 blink::WebMediaStream mixed_desc = RequestLocalMediaStream();
542 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter()); 546 EXPECT_EQ(1, ms_dispatcher_->request_stream_counter());
543 used_media_impl_->FrameWillClose(); 547 LoadNewDocumentInFrame();
544 blink::WebHeap::collectAllGarbageForTesting(); 548 blink::WebHeap::collectAllGarbageForTesting();
545 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 549 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
546 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 550 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
547 551
548 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks; 552 blink::WebVector<blink::WebMediaStreamTrack> audio_tracks;
549 mixed_desc.audioTracks(audio_tracks); 553 mixed_desc.audioTracks(audio_tracks);
550 MediaStreamTrack* audio_track = MediaStreamTrack::GetTrack(audio_tracks[0]); 554 MediaStreamTrack* audio_track = MediaStreamTrack::GetTrack(audio_tracks[0]);
551 audio_track->Stop(); 555 audio_track->Stop();
552 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 556 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
553 557
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
704 // Remove video track. This should trigger 708 // Remove video track. This should trigger
705 // UserMediaClientImpl::OnLocalSourceStopped, and has video track to be 709 // UserMediaClientImpl::OnLocalSourceStopped, and has video track to be
706 // removed from its |local_sources_|. 710 // removed from its |local_sources_|.
707 blink::WebVector<blink::WebMediaStreamTrack> video_tracks; 711 blink::WebVector<blink::WebMediaStreamTrack> video_tracks;
708 mixed_desc.videoTracks(video_tracks); 712 mixed_desc.videoTracks(video_tracks);
709 MediaStreamTrack* video_track = MediaStreamTrack::GetTrack(video_tracks[0]); 713 MediaStreamTrack* video_track = MediaStreamTrack::GetTrack(video_tracks[0]);
710 video_track->Stop(); 714 video_track->Stop();
711 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 715 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
712 EXPECT_EQ(0, ms_dispatcher_->stop_audio_device_counter()); 716 EXPECT_EQ(0, ms_dispatcher_->stop_audio_device_counter());
713 717
714 // Now we close the web frame, if in the above Stop() call, 718 // Now we load a new document in the web frame. If in the above Stop() call,
715 // UserMediaClientImpl accidentally removed audio track, then video track will 719 // UserMediaClientImpl accidentally removed audio track, then video track will
716 // be removed again here, which is incorrect. 720 // be removed again here, which is incorrect.
717 used_media_impl_->FrameWillClose(); 721 LoadNewDocumentInFrame();
718 blink::WebHeap::collectAllGarbageForTesting(); 722 blink::WebHeap::collectAllGarbageForTesting();
719 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter()); 723 EXPECT_EQ(1, ms_dispatcher_->stop_video_device_counter());
720 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter()); 724 EXPECT_EQ(1, ms_dispatcher_->stop_audio_device_counter());
721 } 725 }
722 726
723 } // namespace content 727 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/user_media_client_impl.cc ('k') | content/renderer/render_frame_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698