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

Unified Diff: extensions/browser/api/cast_channel/cast_framer_unittest.cc

Issue 2913033003: [cast_channel] Move cast_channel related files from //extensions to //components (Closed)
Patch Set: fix buildbot compile errors Created 3 years, 6 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
Index: extensions/browser/api/cast_channel/cast_framer_unittest.cc
diff --git a/extensions/browser/api/cast_channel/cast_framer_unittest.cc b/extensions/browser/api/cast_channel/cast_framer_unittest.cc
deleted file mode 100644
index 87c76e4eeec11e185bb459530b4286c07758bc88..0000000000000000000000000000000000000000
--- a/extensions/browser/api/cast_channel/cast_framer_unittest.cc
+++ /dev/null
@@ -1,143 +0,0 @@
-// Copyright 2014 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 "extensions/browser/api/cast_channel/cast_framer.h"
-
-#include <stddef.h>
-
-#include <algorithm>
-#include <string>
-
-#include "extensions/common/api/cast_channel/cast_channel.pb.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace extensions {
-namespace api {
-namespace cast_channel {
-
-using ::cast_channel::ChannelError;
-
-class CastFramerTest : public testing::Test {
- public:
- CastFramerTest() {}
- ~CastFramerTest() override {}
-
- void SetUp() override {
- cast_message_.set_protocol_version(CastMessage::CASTV2_1_0);
- cast_message_.set_source_id("source");
- cast_message_.set_destination_id("destination");
- cast_message_.set_namespace_("namespace");
- cast_message_.set_payload_type(CastMessage::STRING);
- cast_message_.set_payload_utf8("payload");
- ASSERT_TRUE(MessageFramer::Serialize(cast_message_, &cast_message_str_));
-
- buffer_ = new net::GrowableIOBuffer;
- buffer_->SetCapacity(MessageFramer::MessageHeader::max_message_size());
- framer_.reset(new MessageFramer(buffer_.get()));
- }
-
- void WriteToBuffer(const std::string& data) {
- memcpy(buffer_->StartOfBuffer(), data.data(), data.size());
- }
-
- protected:
- CastMessage cast_message_;
- std::string cast_message_str_;
- scoped_refptr<net::GrowableIOBuffer> buffer_;
- std::unique_ptr<MessageFramer> framer_;
-};
-
-TEST_F(CastFramerTest, TestMessageFramerCompleteMessage) {
- ChannelError error;
- size_t message_length;
-
- WriteToBuffer(cast_message_str_);
-
- // Receive 1 byte of the header, framer demands 3 more bytes.
- EXPECT_EQ(4u, framer_->BytesRequested());
- EXPECT_EQ(nullptr, framer_->Ingest(1, &message_length, &error).get());
- EXPECT_EQ(ChannelError::NONE, error);
- EXPECT_EQ(3u, framer_->BytesRequested());
-
- // Ingest remaining 3, expect that the framer has moved on to requesting the
- // body contents.
- EXPECT_EQ(nullptr, framer_->Ingest(3, &message_length, &error).get());
- EXPECT_EQ(ChannelError::NONE, error);
- EXPECT_EQ(
- cast_message_str_.size() - MessageFramer::MessageHeader::header_size(),
- framer_->BytesRequested());
-
- // Remainder of packet sent over the wire.
- std::unique_ptr<CastMessage> message;
- message = framer_->Ingest(framer_->BytesRequested(), &message_length, &error);
- EXPECT_NE(static_cast<CastMessage*>(nullptr), message.get());
- EXPECT_EQ(ChannelError::NONE, error);
- EXPECT_EQ(message->SerializeAsString(), cast_message_.SerializeAsString());
- EXPECT_EQ(4u, framer_->BytesRequested());
- EXPECT_EQ(message->SerializeAsString().size(), message_length);
-}
-
-TEST_F(CastFramerTest, TestSerializeErrorMessageTooLarge) {
- std::string serialized;
- CastMessage big_message;
- big_message.CopyFrom(cast_message_);
- std::string payload;
- payload.append(MessageFramer::MessageHeader::max_message_size() + 1, 'x');
- big_message.set_payload_utf8(payload);
- EXPECT_FALSE(MessageFramer::Serialize(big_message, &serialized));
-}
-
-TEST_F(CastFramerTest, TestIngestIllegalLargeMessage) {
- std::string mangled_cast_message = cast_message_str_;
- mangled_cast_message[0] = 88;
- mangled_cast_message[1] = 88;
- mangled_cast_message[2] = 88;
- mangled_cast_message[3] = 88;
- WriteToBuffer(mangled_cast_message);
-
- size_t bytes_ingested;
- ChannelError error;
- EXPECT_EQ(4u, framer_->BytesRequested());
- EXPECT_EQ(nullptr, framer_->Ingest(4, &bytes_ingested, &error).get());
- EXPECT_EQ(ChannelError::INVALID_MESSAGE, error);
- EXPECT_EQ(0u, framer_->BytesRequested());
-
- // Test that the parser enters a terminal error state.
- WriteToBuffer(cast_message_str_);
- EXPECT_EQ(0u, framer_->BytesRequested());
- EXPECT_EQ(nullptr, framer_->Ingest(4, &bytes_ingested, &error).get());
- EXPECT_EQ(ChannelError::INVALID_MESSAGE, error);
- EXPECT_EQ(0u, framer_->BytesRequested());
-}
-
-TEST_F(CastFramerTest, TestUnparsableBodyProto) {
- // Message header is OK, but the body is replaced with "x"en.
- std::string mangled_cast_message = cast_message_str_;
- for (size_t i = MessageFramer::MessageHeader::header_size();
- i < mangled_cast_message.size();
- ++i) {
- std::fill(mangled_cast_message.begin() +
- MessageFramer::MessageHeader::header_size(),
- mangled_cast_message.end(),
- 'x');
- }
- WriteToBuffer(mangled_cast_message);
-
- // Send header.
- size_t message_length;
- ChannelError error;
- EXPECT_EQ(4u, framer_->BytesRequested());
- EXPECT_EQ(nullptr, framer_->Ingest(4, &message_length, &error).get());
- EXPECT_EQ(ChannelError::NONE, error);
- EXPECT_EQ(cast_message_str_.size() - 4, framer_->BytesRequested());
-
- // Send body, expect an error.
- std::unique_ptr<CastMessage> message;
- EXPECT_EQ(nullptr, framer_->Ingest(framer_->BytesRequested(), &message_length,
- &error).get());
- EXPECT_EQ(ChannelError::INVALID_MESSAGE, error);
-}
-} // namespace cast_channel
-} // namespace api
-} // namespace extensions
« no previous file with comments | « extensions/browser/api/cast_channel/cast_framer.cc ('k') | extensions/browser/api/cast_channel/cast_message_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698