Upstream version 9.38.198.0
[platform/framework/web/crosswalk.git] / src / content / renderer / media / media_stream_video_capture_source_unittest.cc
index fca4562..8492039 100644 (file)
@@ -37,14 +37,16 @@ class MediaStreamVideoCapturerSourceTest : public testing::Test {
  public:
   MediaStreamVideoCapturerSourceTest()
      : child_process_(new ChildProcess()),
-       source_(NULL) {
+       source_(NULL),
+       source_stopped_(false) {
   }
 
   void InitWithDeviceInfo(const StreamDeviceInfo& device_info) {
     delegate_ = new MockVideoCapturerDelegate(device_info);
     source_ = new MediaStreamVideoCapturerSource(
         device_info,
-        MediaStreamSource::SourceStoppedCallback(),
+        base::Bind(&MediaStreamVideoCapturerSourceTest::OnSourceStopped,
+                    base::Unretained(this)),
         delegate_);
 
     webkit_source_.initialize(base::UTF8ToUTF16("dummy_source_id"),
@@ -69,8 +71,15 @@ class MediaStreamVideoCapturerSourceTest : public testing::Test {
     return *static_cast<MockVideoCapturerDelegate*>(delegate_.get());
   }
 
+  void OnSourceStopped(const blink::WebMediaStreamSource& source) {
+    source_stopped_ =  true;
+    EXPECT_EQ(source.id(), webkit_source_.id());
+  }
+
  protected:
-  void OnConstraintsApplied(MediaStreamSource* source, bool success) {
+  void OnConstraintsApplied(MediaStreamSource* source,
+                            MediaStreamRequestResult result,
+                            const blink::WebString& result_name) {
   }
 
   base::MessageLoopForUI message_loop_;
@@ -78,6 +87,7 @@ class MediaStreamVideoCapturerSourceTest : public testing::Test {
   blink::WebMediaStreamSource webkit_source_;
   MediaStreamVideoCapturerSource* source_;  // owned by webkit_source.
   scoped_refptr<VideoCapturerDelegate> delegate_;
+  bool source_stopped_;
 };
 
 TEST_F(MediaStreamVideoCapturerSourceTest, TabCaptureAllowResolutionChange) {
@@ -115,7 +125,8 @@ TEST_F(MediaStreamVideoCapturerSourceTest, Ended) {
   delegate_ = new VideoCapturerDelegate(device_info);
   source_ = new MediaStreamVideoCapturerSource(
       device_info,
-      MediaStreamSource::SourceStoppedCallback(),
+      base::Bind(&MediaStreamVideoCapturerSourceTest::OnSourceStopped,
+                 base::Unretained(this)),
       delegate_);
   webkit_source_.initialize(base::UTF8ToUTF16("dummy_source_id"),
                             blink::WebMediaStreamSource::TypeVideo,
@@ -129,10 +140,13 @@ TEST_F(MediaStreamVideoCapturerSourceTest, Ended) {
   EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateLive,
             webkit_source_.readyState());
 
+  EXPECT_FALSE(source_stopped_);
   delegate_->OnStateUpdateOnRenderThread(VIDEO_CAPTURE_STATE_ERROR);
   message_loop_.RunUntilIdle();
   EXPECT_EQ(blink::WebMediaStreamSource::ReadyStateEnded,
             webkit_source_.readyState());
+  // Verify that MediaStreamSource::SourceStoppedCallback has been triggered.
+  EXPECT_TRUE(source_stopped_);
 }
 
 class FakeMediaStreamVideoSink : public MediaStreamVideoSink {
@@ -172,7 +186,7 @@ TEST_F(MediaStreamVideoCapturerSourceTest, CaptureTime) {
                                testing::SaveArg<2>(&running_cb)));
   EXPECT_CALL(mock_delegate(), StopCapture());
   blink::WebMediaStreamTrack track = StartSource();
-  running_cb.Run(true);
+  running_cb.Run(MEDIA_DEVICE_OK);
 
   base::RunLoop run_loop;
   base::TimeTicks reference_capture_time =