summaryrefslogtreecommitdiffstats
path: root/remoting/base/protocol_decoder_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'remoting/base/protocol_decoder_unittest.cc')
-rw-r--r--remoting/base/protocol_decoder_unittest.cc121
1 files changed, 0 insertions, 121 deletions
diff --git a/remoting/base/protocol_decoder_unittest.cc b/remoting/base/protocol_decoder_unittest.cc
deleted file mode 100644
index ae4ba85..0000000
--- a/remoting/base/protocol_decoder_unittest.cc
+++ /dev/null
@@ -1,121 +0,0 @@
-// Copyright (c) 2010 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include <string>
-
-#include "base/scoped_ptr.h"
-#include "base/stl_util-inl.h"
-#include "media/base/data_buffer.h"
-#include "remoting/base/protocol_decoder.h"
-#include "remoting/base/protocol_util.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace remoting {
-
-static const int kWidth = 640;
-static const int kHeight = 480;
-static const std::string kTestData = "Chromoting rockz";
-
-static void AppendMessage(const ChromotingHostMessage& msg,
- std::string* buffer) {
- // Contains one encoded message.
- scoped_refptr<media::DataBuffer> encoded_msg;
- encoded_msg = SerializeAndFrameMessage(msg);
- buffer->append(reinterpret_cast<const char*>(encoded_msg->GetData()),
- encoded_msg->GetDataSize());
-}
-
-// Construct and prepare data in the |output_stream|.
-static void PrepareData(uint8** buffer, int* size) {
- // Contains all encoded messages.
- std::string encoded_data;
-
- // The first message is InitClient.
- ChromotingHostMessage msg;
- msg.mutable_init_client()->set_width(kWidth);
- msg.mutable_init_client()->set_height(kHeight);
- AppendMessage(msg, &encoded_data);
- msg.Clear();
-
- // Then append 10 update sequences to the data.
- for (int i = 0; i < 10; ++i) {
- msg.mutable_begin_update_stream();
- AppendMessage(msg, &encoded_data);
- msg.Clear();
-
- msg.mutable_update_stream_packet()->mutable_rect_data()->
- set_sequence_number(0);
- msg.mutable_update_stream_packet()->mutable_rect_data()->
- set_data(kTestData);
- AppendMessage(msg, &encoded_data);
- msg.Clear();
-
- msg.mutable_end_update_stream();
- AppendMessage(msg, &encoded_data);
- msg.Clear();
- }
-
- *size = encoded_data.length();
- *buffer = new uint8[*size];
- memcpy(*buffer, encoded_data.c_str(), *size);
-}
-
-TEST(ProtocolDecoderTest, BasicOperations) {
- // Prepare encoded data for testing.
- int size;
- uint8* test_data;
- PrepareData(&test_data, &size);
- scoped_array<uint8> memory_deleter(test_data);
-
- // Then simulate using ProtocolDecoder to decode variable
- // size of encoded data.
- // The first thing to do is to generate a variable size of data. This is done
- // by iterating the following array for read sizes.
- const int kReadSizes[] = {1, 2, 3, 1};
-
- ProtocolDecoder decoder;
-
- // Then feed the protocol decoder using the above generated data and the
- // read pattern.
- HostMessageList message_list;
- for (int i = 0; i < size;) {
- // First generate the amount to feed the decoder.
- int read = std::min(size - i, kReadSizes[i % arraysize(kReadSizes)]);
-
- // And then prepare a DataBuffer for feeding it.
- scoped_refptr<media::DataBuffer> buffer = new media::DataBuffer(read);
- memcpy(buffer->GetWritableData(), test_data + i, read);
- buffer->SetDataSize(read);
- decoder.ParseHostMessages(buffer, &message_list);
- i += read;
- }
-
- // Then verify the decoded messages.
- EXPECT_EQ(31u, message_list.size());
- ASSERT_TRUE(message_list.size() > 0);
- EXPECT_TRUE(message_list.front()->has_init_client());
- delete message_list.front();
- message_list.pop_front();
-
- for (HostMessageList::iterator it = message_list.begin();
- it != message_list.end(); ++it) {
- ChromotingHostMessage* message = *it;
- int type = (i - 1) % 3;
- if (type == 0) {
- // Begin update stream.
- EXPECT_TRUE(message->has_begin_update_stream());
- } else if (type == 1) {
- // Partial update stream.
- EXPECT_TRUE(message->has_update_stream_packet());
- EXPECT_EQ(kTestData,
- message->update_stream_packet().rect_data().data());
- } else if (type == 2) {
- // End update stream.
- EXPECT_TRUE(message->has_end_update_stream());
- }
- }
- STLDeleteElements(&message_list);
-}
-
-} // namespace remoting