| Index: chrome/browser/local_discovery/privet_local_printer_lister_unittest.cc
|
| diff --git a/chrome/browser/local_discovery/privet_local_printer_lister_unittest.cc b/chrome/browser/local_discovery/privet_local_printer_lister_unittest.cc
|
| deleted file mode 100644
|
| index 700335f779ceaec3a40ea36250d2a07ae2ee59f0..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/local_discovery/privet_local_printer_lister_unittest.cc
|
| +++ /dev/null
|
| @@ -1,193 +0,0 @@
|
| -// Copyright 2013 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 "chrome/browser/local_discovery/privet_local_printer_lister.h"
|
| -
|
| -#include <stddef.h>
|
| -#include <stdint.h>
|
| -
|
| -#include "base/run_loop.h"
|
| -#include "base/thread_task_runner_handle.h"
|
| -#include "chrome/browser/local_discovery/test_service_discovery_client.h"
|
| -#include "content/public/test/test_browser_thread_bundle.h"
|
| -#include "net/url_request/test_url_fetcher_factory.h"
|
| -#include "net/url_request/url_request_test_util.h"
|
| -#include "testing/gmock/include/gmock/gmock.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using testing::StrictMock;
|
| -using testing::AtLeast;
|
| -using testing::_;
|
| -
|
| -namespace local_discovery {
|
| -
|
| -namespace {
|
| -
|
| -const uint8_t kAnnouncePacket[] = {
|
| - // Header
|
| - 0x00, 0x00, // ID is zeroed out
|
| - 0x80, 0x00, // Standard query response, no error
|
| - 0x00, 0x00, // No questions (for simplicity)
|
| - 0x00, 0x05, // 5 RR (answers)
|
| - 0x00, 0x00, // 0 authority RRs
|
| - 0x00, 0x00, // 0 additional RRs
|
| - 0x07, '_', 'p', 'r', 'i', 'v', 'e', 't', 0x04, '_',
|
| - 't', 'c', 'p', 0x05, 'l', 'o', 'c', 'a', 'l', 0x00,
|
| - 0x00, 0x0c, // TYPE is PTR.
|
| - 0x00, 0x01, // CLASS is IN.
|
| - 0x00, 0x00, // TTL (4 bytes) is 32768 second.
|
| - 0x10, 0x00, 0x00, 0x0c, // RDLENGTH is 12 bytes.
|
| - 0x09, 'm', 'y', 'S', 'e', 'r', 'v', 'i', 'c', 'e',
|
| - 0xc0, 0x0c, 0x09, 'm', 'y', 'S', 'e', 'r', 'v', 'i',
|
| - 'c', 'e', 0xc0, 0x0c, 0x00, 0x10, // TYPE is TXT.
|
| - 0x00, 0x01, // CLASS is IN.
|
| - 0x00, 0x00, // TTL (4 bytes) is 32768 seconds.
|
| - 0x01, 0x00, 0x00, 0x44, // RDLENGTH is 55 bytes.
|
| - 0x06, 'i', 'd', '=', 'r', 'e', 'g', 0x10, 't', 'y',
|
| - '=', 'S', 'a', 'm', 'p', 'l', 'e', ' ', 'd', 'e',
|
| - 'v', 'i', 'c', 'e', 0x1e, 'n', 'o', 't', 'e', '=',
|
| - 'S', 'a', 'm', 'p', 'l', 'e', ' ', 'd', 'e', 'v',
|
| - 'i', 'c', 'e', ' ', 'd', 'e', 's', 'c', 'r', 'i',
|
| - 'p', 't', 'i', 'o', 'n', 0x0c, 't', 'y', 'p', 'e',
|
| - '=', 'p', 'r', 'i', 'n', 't', 'e', 'r', 0x09, 'm',
|
| - 'y', 'S', 'e', 'r', 'v', 'i', 'c', 'e', 0xc0, 0x0c,
|
| - 0x00, 0x21, // Type is SRV
|
| - 0x00, 0x01, // CLASS is IN
|
| - 0x00, 0x00, // TTL (4 bytes) is 32768 second.
|
| - 0x10, 0x00, 0x00, 0x17, // RDLENGTH is 23
|
| - 0x00, 0x00, 0x00, 0x00, 0x22, 0xb8, // port 8888
|
| - 0x09, 'm', 'y', 'S', 'e', 'r', 'v', 'i', 'c', 'e',
|
| - 0x05, 'l', 'o', 'c', 'a', 'l', 0x00, 0x09, 'm', 'y',
|
| - 'S', 'e', 'r', 'v', 'i', 'c', 'e', 0x05, 'l', 'o',
|
| - 'c', 'a', 'l', 0x00, 0x00, 0x01, // Type is A
|
| - 0x00, 0x01, // CLASS is IN
|
| - 0x00, 0x00, // TTL (4 bytes) is 32768 second.
|
| - 0x10, 0x00, 0x00, 0x04, // RDLENGTH is 4
|
| - 0x01, 0x02, 0x03, 0x04, // 1.2.3.4
|
| - 0x09, 'm', 'y', 'S', 'e', 'r', 'v', 'i', 'c', 'e',
|
| - 0x05, 'l', 'o', 'c', 'a', 'l', 0x00, 0x00, 0x1C, // Type is AAAA
|
| - 0x00, 0x01, // CLASS is IN
|
| - 0x00, 0x00, // TTL (4 bytes) is 32768 second.
|
| - 0x10, 0x00, 0x00, 0x10, // RDLENGTH is 16
|
| - 0x01, 0x02, 0x03, 0x04, // 1.2.3.4
|
| - 0x01, 0x02, 0x03, 0x04, 0x01, 0x02, 0x03, 0x04, 0x01, 0x02,
|
| - 0x03, 0x04,
|
| -};
|
| -
|
| -const char kInfoIsLocalPrinter[] = "{"
|
| - "\"api\" : [ \"/privet/printer/submitdoc\" ],"
|
| - "\"x-privet-token\" : \"sample\""
|
| - "}";
|
| -
|
| -const char kInfoIsNotLocalPrinter[] = "{"
|
| - "\"api\" : [ \"/privet/register\" ],"
|
| - "\"x-privet-token\" : \"sample\""
|
| - "}";
|
| -
|
| -const char kServiceName[] = "myService._privet._tcp.local";
|
| -
|
| -const char kPrivetInfoURL[] = "http://1.2.3.4:8888/privet/info";
|
| -
|
| -class MockLocalPrinterListerDelegate
|
| - : public PrivetLocalPrinterLister::Delegate {
|
| - public:
|
| - MockLocalPrinterListerDelegate() {
|
| - }
|
| -
|
| - virtual ~MockLocalPrinterListerDelegate() {
|
| - }
|
| -
|
| - MOCK_METHOD4(LocalPrinterChanged, void(bool added,
|
| - const std::string& name,
|
| - bool has_local_printing,
|
| - const DeviceDescription& description));
|
| -
|
| - MOCK_METHOD1(LocalPrinterRemoved, void(const std::string& name));
|
| -
|
| - MOCK_METHOD0(LocalPrinterCacheFlushed, void());
|
| -};
|
| -
|
| -class PrivetLocalPrinterListerTest : public testing::Test {
|
| - public:
|
| - PrivetLocalPrinterListerTest() {
|
| - test_service_discovery_client_ = new TestServiceDiscoveryClient();
|
| - test_service_discovery_client_->Start();
|
| - url_request_context_ = new net::TestURLRequestContextGetter(
|
| - base::ThreadTaskRunnerHandle::Get());
|
| - local_printer_lister_.reset(new PrivetLocalPrinterLister(
|
| - test_service_discovery_client_.get(),
|
| - url_request_context_.get(),
|
| - &delegate_));
|
| - }
|
| -
|
| - ~PrivetLocalPrinterListerTest() {
|
| - }
|
| -
|
| - bool SuccessfulResponseToURL(const GURL& url,
|
| - const std::string& response) {
|
| - net::TestURLFetcher* fetcher = fetcher_factory_.GetFetcherByID(0);
|
| - EXPECT_TRUE(fetcher);
|
| - EXPECT_EQ(url, fetcher->GetOriginalURL());
|
| -
|
| - if (!fetcher || url != fetcher->GetOriginalURL())
|
| - return false;
|
| -
|
| - fetcher->SetResponseString(response);
|
| - fetcher->set_status(net::URLRequestStatus(net::URLRequestStatus::SUCCESS,
|
| - net::OK));
|
| - fetcher->set_response_code(200);
|
| - fetcher->delegate()->OnURLFetchComplete(fetcher);
|
| - return true;
|
| - }
|
| -
|
| - void SimulateReceive(const uint8_t* packet, size_t size) {
|
| - test_service_discovery_client_->SimulateReceive(packet, size);
|
| - base::RunLoop().RunUntilIdle();
|
| - }
|
| -
|
| - void ExpectAnyPacket() {
|
| - EXPECT_CALL(*test_service_discovery_client_.get(), OnSendTo(_))
|
| - .Times(AtLeast(2));
|
| - }
|
| -
|
| - protected:
|
| - content::TestBrowserThreadBundle test_thread_bundle;
|
| - scoped_refptr<TestServiceDiscoveryClient> test_service_discovery_client_;
|
| - scoped_refptr<net::TestURLRequestContextGetter> url_request_context_;
|
| - scoped_ptr<PrivetLocalPrinterLister> local_printer_lister_;
|
| - net::TestURLFetcherFactory fetcher_factory_;
|
| - StrictMock<MockLocalPrinterListerDelegate> delegate_;
|
| -};
|
| -
|
| -TEST_F(PrivetLocalPrinterListerTest, PrinterAddedTest) {
|
| - ExpectAnyPacket();
|
| -
|
| - local_printer_lister_->Start();
|
| -
|
| - SimulateReceive(kAnnouncePacket, sizeof(kAnnouncePacket));
|
| -
|
| - EXPECT_CALL(delegate_, LocalPrinterChanged(true, kServiceName, true, _));
|
| -
|
| - EXPECT_TRUE(SuccessfulResponseToURL(
|
| - GURL(kPrivetInfoURL),
|
| - std::string(kInfoIsLocalPrinter)));
|
| -};
|
| -
|
| -TEST_F(PrivetLocalPrinterListerTest, NonPrinterAddedTest) {
|
| - ExpectAnyPacket();
|
| -
|
| - local_printer_lister_->Start();
|
| -
|
| - SimulateReceive(kAnnouncePacket, sizeof(kAnnouncePacket));
|
| -
|
| - EXPECT_CALL(delegate_, LocalPrinterChanged(true, kServiceName, false, _));
|
| -
|
| - EXPECT_TRUE(SuccessfulResponseToURL(
|
| - GURL(kPrivetInfoURL),
|
| - std::string(kInfoIsNotLocalPrinter)));
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| -} // namespace local_discovery
|
|
|