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

Unified Diff: remoting/protocol/client_video_dispatcher_unittest.cc

Issue 1844143002: Add VideoLayout message. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « remoting/protocol/client_video_dispatcher.cc ('k') | remoting/protocol/host_control_dispatcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/client_video_dispatcher_unittest.cc
diff --git a/remoting/protocol/client_video_dispatcher_unittest.cc b/remoting/protocol/client_video_dispatcher_unittest.cc
index 73a9c346bc43976b36e5e65e7aed0f57abf11e99..067049da5020e55fd344ef78fcb1d9f0d8224af5 100644
--- a/remoting/protocol/client_video_dispatcher_unittest.cc
+++ b/remoting/protocol/client_video_dispatcher_unittest.cc
@@ -14,6 +14,7 @@
#include "remoting/protocol/fake_stream_socket.h"
#include "remoting/protocol/message_reader.h"
#include "remoting/protocol/message_serialization.h"
+#include "remoting/protocol/protocol_mock_objects.h"
#include "remoting/protocol/stream_message_pipe_adapter.h"
#include "remoting/protocol/video_stub.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -48,6 +49,7 @@ class ClientVideoDispatcherTest : public testing::Test,
// Client side.
FakeStreamChannelFactory client_channel_factory_;
StreamMessageChannelFactoryAdapter channel_factory_adapter_;
+ MockClientStub client_stub_;
ClientVideoDispatcher dispatcher_;
// Host side.
@@ -66,7 +68,7 @@ ClientVideoDispatcherTest::ClientVideoDispatcherTest()
&client_channel_factory_,
base::Bind(&ClientVideoDispatcherTest::OnChannelError,
base::Unretained(this))),
- dispatcher_(this) {
+ dispatcher_(this, &client_stub_) {
dispatcher_.Init(&channel_factory_adapter_, this);
base::RunLoop().RunUntilIdle();
DCHECK(initialized_);
@@ -154,6 +156,37 @@ TEST_F(ClientVideoDispatcherTest, WithAcks) {
EXPECT_EQ(kTestFrameId, ack_messages_[0]->frame_id());
}
+// Verifies that the dispatcher properly synthesizes VideoLayout message when
+// screen size changes.
+TEST_F(ClientVideoDispatcherTest, VideoLayout) {
+ const int kScreenSize = 100;
+ const float kScaleFactor = 2.0;
+
+ VideoPacket packet;
+ packet.set_data(std::string());
+ packet.set_frame_id(42);
+ packet.mutable_format()->set_screen_width(kScreenSize);
+ packet.mutable_format()->set_screen_height(kScreenSize);
+ packet.mutable_format()->set_x_dpi(kDefaultDpi * kScaleFactor);
+ packet.mutable_format()->set_y_dpi(kDefaultDpi * kScaleFactor);
+
+ VideoLayout layout;
+ EXPECT_CALL(client_stub_, SetVideoLayout(testing::_))
+ .WillOnce(testing::SaveArg<0>(&layout));
+
+ // Send a VideoPacket and verify that the client receives it.
+ writer_.Write(SerializeAndFrameMessage(packet), base::Closure());
+ base::RunLoop().RunUntilIdle();
+
+ ASSERT_EQ(1, layout.video_track_size());
+ EXPECT_EQ(0, layout.video_track(0).position_x());
+ EXPECT_EQ(0, layout.video_track(0).position_y());
+ EXPECT_EQ(kScreenSize / kScaleFactor, layout.video_track(0).width());
+ EXPECT_EQ(kScreenSize / kScaleFactor, layout.video_track(0).height());
+ EXPECT_EQ(kDefaultDpi * kScaleFactor, layout.video_track(0).x_dpi());
+ EXPECT_EQ(kDefaultDpi * kScaleFactor, layout.video_track(0).y_dpi());
+}
+
// Verify that Ack messages are sent in correct order.
TEST_F(ClientVideoDispatcherTest, AcksOrder) {
int kTestFrameId = 3;
« no previous file with comments | « remoting/protocol/client_video_dispatcher.cc ('k') | remoting/protocol/host_control_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698