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

Side by Side Diff: remoting/protocol/message_decoder_unittest.cc

Issue 4255001: Revert 64672 - Cleanups in the video encoding decoding code. Reenable VP8.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 1 month 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 | Annotate | Revision Log
« no previous file with comments | « remoting/protocol/host_message_dispatcher.cc ('k') | remoting/remoting.gyp » ('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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <string> 5 #include <string>
6 6
7 #include "base/scoped_ptr.h" 7 #include "base/scoped_ptr.h"
8 #include "base/stl_util-inl.h" 8 #include "base/stl_util-inl.h"
9 #include "net/base/io_buffer.h" 9 #include "net/base/io_buffer.h"
10 #include "remoting/base/multiple_array_input_stream.h" 10 #include "remoting/base/multiple_array_input_stream.h"
(...skipping 23 matching lines...) Expand all
34 34
35 // The first message is InitClient. 35 // The first message is InitClient.
36 ChromotingHostMessage msg; 36 ChromotingHostMessage msg;
37 msg.mutable_init_client()->set_width(kWidth); 37 msg.mutable_init_client()->set_width(kWidth);
38 msg.mutable_init_client()->set_height(kHeight); 38 msg.mutable_init_client()->set_height(kHeight);
39 AppendMessage(msg, &encoded_data); 39 AppendMessage(msg, &encoded_data);
40 msg.Clear(); 40 msg.Clear();
41 41
42 // Then append 10 update sequences to the data. 42 // Then append 10 update sequences to the data.
43 for (int i = 0; i < 10; ++i) { 43 for (int i = 0; i < 10; ++i) {
44 msg.mutable_video_packet()->set_sequence_number(0); 44 msg.mutable_begin_update_stream();
45 msg.mutable_video_packet()->set_data(kTestData); 45 AppendMessage(msg, &encoded_data);
46 msg.Clear();
47
48 msg.mutable_update_stream_packet()->mutable_rect_data()->
49 set_sequence_number(0);
50 msg.mutable_update_stream_packet()->mutable_rect_data()->
51 set_data(kTestData);
52 AppendMessage(msg, &encoded_data);
53 msg.Clear();
54
55 msg.mutable_end_update_stream();
46 AppendMessage(msg, &encoded_data); 56 AppendMessage(msg, &encoded_data);
47 msg.Clear(); 57 msg.Clear();
48 } 58 }
49 59
50 *size = encoded_data.length(); 60 *size = encoded_data.length();
51 *buffer = new uint8[*size]; 61 *buffer = new uint8[*size];
52 memcpy(*buffer, encoded_data.c_str(), *size); 62 memcpy(*buffer, encoded_data.c_str(), *size);
53 } 63 }
54 64
55 void SimulateReadSequence(const int read_sequence[], int sequence_size) { 65 void SimulateReadSequence(const int read_sequence[], int sequence_size) {
(...skipping 17 matching lines...) Expand all
73 int read = std::min(size - i, read_sequence[i % sequence_size]); 83 int read = std::min(size - i, read_sequence[i % sequence_size]);
74 84
75 // And then prepare an IOBuffer for feeding it. 85 // And then prepare an IOBuffer for feeding it.
76 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(read)); 86 scoped_refptr<net::IOBuffer> buffer(new net::IOBuffer(read));
77 memcpy(buffer->data(), test_data + i, read); 87 memcpy(buffer->data(), test_data + i, read);
78 decoder.ParseMessages(buffer, read, &message_list); 88 decoder.ParseMessages(buffer, read, &message_list);
79 i += read; 89 i += read;
80 } 90 }
81 91
82 // Then verify the decoded messages. 92 // Then verify the decoded messages.
83 EXPECT_EQ(11u, message_list.size()); 93 EXPECT_EQ(31u, message_list.size());
84 EXPECT_TRUE(message_list.front()->has_init_client()); 94 EXPECT_TRUE(message_list.front()->has_init_client());
85 delete message_list.front(); 95 delete message_list.front();
86 message_list.pop_front(); 96 message_list.pop_front();
87 97
98 int index = 0;
88 for (std::list<ChromotingHostMessage*>::iterator it = 99 for (std::list<ChromotingHostMessage*>::iterator it =
89 message_list.begin(); 100 message_list.begin();
90 it != message_list.end(); ++it) { 101 it != message_list.end(); ++it) {
91 ChromotingHostMessage* message = *it; 102 ChromotingHostMessage* message = *it;
92 // Partial update stream. 103 int type = index % 3;
93 EXPECT_TRUE(message->has_video_packet()); 104 ++index;
94 EXPECT_EQ(kTestData, 105 if (type == 0) {
95 message->video_packet().data().data()); 106 // Begin update stream.
107 EXPECT_TRUE(message->has_begin_update_stream());
108 } else if (type == 1) {
109 // Partial update stream.
110 EXPECT_TRUE(message->has_update_stream_packet());
111 EXPECT_EQ(kTestData,
112 message->update_stream_packet().rect_data().data());
113 } else if (type == 2) {
114 // End update stream.
115 EXPECT_TRUE(message->has_end_update_stream());
116 }
96 } 117 }
97 STLDeleteElements(&message_list); 118 STLDeleteElements(&message_list);
98 } 119 }
99 120
100 TEST(MessageDecoderTest, SmallReads) { 121 TEST(MessageDecoderTest, SmallReads) {
101 const int kReads[] = {1, 2, 3, 1}; 122 const int kReads[] = {1, 2, 3, 1};
102 SimulateReadSequence(kReads, arraysize(kReads)); 123 SimulateReadSequence(kReads, arraysize(kReads));
103 } 124 }
104 125
105 TEST(MessageDecoderTest, LargeReads) { 126 TEST(MessageDecoderTest, LargeReads) {
106 const int kReads[] = {50, 50, 5}; 127 const int kReads[] = {50, 50, 5};
107 SimulateReadSequence(kReads, arraysize(kReads)); 128 SimulateReadSequence(kReads, arraysize(kReads));
108 } 129 }
109 130
110 TEST(MessageDecoderTest, EmptyReads) { 131 TEST(MessageDecoderTest, EmptyReads) {
111 const int kReads[] = {4, 0, 50, 0}; 132 const int kReads[] = {4, 0, 50, 0};
112 SimulateReadSequence(kReads, arraysize(kReads)); 133 SimulateReadSequence(kReads, arraysize(kReads));
113 } 134 }
114 135
115 } // namespace remoting 136 } // namespace remoting
OLDNEW
« no previous file with comments | « remoting/protocol/host_message_dispatcher.cc ('k') | remoting/remoting.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698