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

Unified Diff: remoting/protocol/buffered_socket_writer_unittest.cc

Issue 954973004: Move BufferedSocketWriter from remoting/protocol to remoting/base (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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/buffered_socket_writer.cc ('k') | remoting/protocol/channel_dispatcher_base.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/protocol/buffered_socket_writer_unittest.cc
diff --git a/remoting/protocol/buffered_socket_writer_unittest.cc b/remoting/protocol/buffered_socket_writer_unittest.cc
deleted file mode 100644
index f257c8fc075c6640c85f5cbe00bc3a6f5696b5f5..0000000000000000000000000000000000000000
--- a/remoting/protocol/buffered_socket_writer_unittest.cc
+++ /dev/null
@@ -1,189 +0,0 @@
-// Copyright (c) 2012 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 "remoting/protocol/buffered_socket_writer.h"
-
-#include <stdlib.h>
-
-#include "base/bind.h"
-#include "base/message_loop/message_loop.h"
-#include "base/run_loop.h"
-#include "net/base/io_buffer.h"
-#include "net/base/net_errors.h"
-#include "remoting/protocol/fake_session.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace remoting {
-namespace protocol {
-
-namespace {
-const int kTestBufferSize = 10 * 1024; // 10k;
-const size_t kWriteChunkSize = 1024U;
-} // namespace
-
-class BufferedSocketWriterTest : public testing::Test {
- public:
- BufferedSocketWriterTest()
- : write_error_(0) {
- }
-
- void OnDone() {
- base::MessageLoop::current()->PostTask(FROM_HERE,
- base::MessageLoop::QuitClosure());
- }
-
- void DestroyWriterAndQuit() {
- written_data_ = socket_->written_data();
- writer_.reset();
- socket_.reset();
- base::MessageLoop::current()->PostTask(FROM_HERE,
- base::MessageLoop::QuitClosure());
- }
-
- void Unexpected() {
- EXPECT_TRUE(false);
- }
-
- protected:
- void SetUp() override {
- socket_.reset(new FakeStreamSocket());
- writer_.reset(new BufferedSocketWriter());
- writer_->Init(socket_.get(), base::Bind(
- &BufferedSocketWriterTest::OnWriteFailed, base::Unretained(this)));
- test_buffer_ = new net::IOBufferWithSize(kTestBufferSize);
- test_buffer_2_ = new net::IOBufferWithSize(kTestBufferSize);
- for (int i = 0; i< kTestBufferSize; ++i) {
- test_buffer_->data()[i] = rand() % 256;
- test_buffer_2_->data()[i] = rand() % 256;
- }
- }
-
- void OnWriteFailed(int error) {
- write_error_ = error;
- }
-
- void TestWrite() {
- writer_->Write(test_buffer_, base::Bind(&BufferedSocketWriterTest::OnDone,
- base::Unretained(this)));
- writer_->Write(test_buffer_2_, base::Bind(&BufferedSocketWriterTest::OnDone,
- base::Unretained(this)));
- message_loop_.Run();
- ASSERT_EQ(static_cast<size_t>(test_buffer_->size() +
- test_buffer_2_->size()),
- socket_->written_data().size());
- EXPECT_EQ(0, memcmp(test_buffer_->data(), socket_->written_data().data(),
- test_buffer_->size()));
- EXPECT_EQ(0, memcmp(test_buffer_2_->data(),
- socket_->written_data().data() + test_buffer_->size(),
- test_buffer_2_->size()));
- }
-
- void TestAppendInCallback() {
- writer_->Write(test_buffer_, base::Bind(
- base::IgnoreResult(&BufferedSocketWriterBase::Write),
- base::Unretained(writer_.get()), test_buffer_2_,
- base::Bind(&BufferedSocketWriterTest::OnDone,
- base::Unretained(this))));
- message_loop_.Run();
- ASSERT_EQ(static_cast<size_t>(test_buffer_->size() +
- test_buffer_2_->size()),
- socket_->written_data().size());
- EXPECT_EQ(0, memcmp(test_buffer_->data(), socket_->written_data().data(),
- test_buffer_->size()));
- EXPECT_EQ(0, memcmp(test_buffer_2_->data(),
- socket_->written_data().data() + test_buffer_->size(),
- test_buffer_2_->size()));
- }
-
- base::MessageLoop message_loop_;
- scoped_ptr<FakeStreamSocket> socket_;
- scoped_ptr<BufferedSocketWriter> writer_;
- scoped_refptr<net::IOBufferWithSize> test_buffer_;
- scoped_refptr<net::IOBufferWithSize> test_buffer_2_;
- std::string written_data_;
- int write_error_;
-};
-
-// Test synchronous write.
-TEST_F(BufferedSocketWriterTest, WriteFull) {
- TestWrite();
-}
-
-// Test synchronous write in 1k chunks.
-TEST_F(BufferedSocketWriterTest, WriteChunks) {
- socket_->set_write_limit(kWriteChunkSize);
- TestWrite();
-}
-
-// Test asynchronous write.
-TEST_F(BufferedSocketWriterTest, WriteAsync) {
- socket_->set_async_write(true);
- socket_->set_write_limit(kWriteChunkSize);
- TestWrite();
-}
-
-// Make sure we can call Write() from the done callback.
-TEST_F(BufferedSocketWriterTest, AppendInCallbackSync) {
- TestAppendInCallback();
-}
-
-// Make sure we can call Write() from the done callback.
-TEST_F(BufferedSocketWriterTest, AppendInCallbackAsync) {
- socket_->set_async_write(true);
- socket_->set_write_limit(kWriteChunkSize);
- TestAppendInCallback();
-}
-
-// Test that the writer can be destroyed from callback.
-TEST_F(BufferedSocketWriterTest, DestroyFromCallback) {
- socket_->set_async_write(true);
- writer_->Write(test_buffer_, base::Bind(
- &BufferedSocketWriterTest::DestroyWriterAndQuit,
- base::Unretained(this)));
- writer_->Write(test_buffer_2_, base::Bind(
- &BufferedSocketWriterTest::Unexpected,
- base::Unretained(this)));
- socket_->set_async_write(false);
- message_loop_.Run();
- ASSERT_GE(written_data_.size(),
- static_cast<size_t>(test_buffer_->size()));
- EXPECT_EQ(0, memcmp(test_buffer_->data(), written_data_.data(),
- test_buffer_->size()));
-}
-
-// Verify that it stops writing after the first error.
-TEST_F(BufferedSocketWriterTest, TestWriteErrorSync) {
- socket_->set_write_limit(kWriteChunkSize);
- writer_->Write(test_buffer_, base::Closure());
- socket_->set_async_write(true);
- writer_->Write(test_buffer_2_,
- base::Bind(&BufferedSocketWriterTest::Unexpected,
- base::Unretained(this)));
- socket_->set_next_write_error(net::ERR_FAILED);
- socket_->set_async_write(false);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(net::ERR_FAILED, write_error_);
- EXPECT_EQ(static_cast<size_t>(test_buffer_->size()),
- socket_->written_data().size());
-}
-
-// Verify that it stops writing after the first error.
-TEST_F(BufferedSocketWriterTest, TestWriteErrorAsync) {
- socket_->set_write_limit(kWriteChunkSize);
- writer_->Write(test_buffer_, base::Closure());
- socket_->set_async_write(true);
- writer_->Write(test_buffer_2_,
- base::Bind(&BufferedSocketWriterTest::Unexpected,
- base::Unretained(this)));
- socket_->set_next_write_error(net::ERR_FAILED);
- base::RunLoop().RunUntilIdle();
- EXPECT_EQ(net::ERR_FAILED, write_error_);
- EXPECT_EQ(static_cast<size_t>(test_buffer_->size()),
- socket_->written_data().size());
-}
-
-} // namespace protocol
-} // namespace remoting
-
« no previous file with comments | « remoting/protocol/buffered_socket_writer.cc ('k') | remoting/protocol/channel_dispatcher_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698