| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "remoting/protocol/http_ice_config_request.h" | 5 #include "remoting/protocol/http_ice_config_request.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/memory/ptr_util.h" |
| 9 #include "remoting/base/url_request.h" | 10 #include "remoting/base/url_request.h" |
| 10 #include "remoting/protocol/ice_config.h" | 11 #include "remoting/protocol/ice_config.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 13 |
| 13 namespace remoting { | 14 namespace remoting { |
| 14 namespace protocol { | 15 namespace protocol { |
| 15 | 16 |
| 16 namespace { | 17 namespace { |
| 17 | 18 |
| 18 class FakeUrlRequest : public UrlRequest { | 19 class FakeUrlRequest : public UrlRequest { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 40 class FakeUrlRequestFactory : public UrlRequestFactory { | 41 class FakeUrlRequestFactory : public UrlRequestFactory { |
| 41 public: | 42 public: |
| 42 FakeUrlRequestFactory() {} | 43 FakeUrlRequestFactory() {} |
| 43 ~FakeUrlRequestFactory() override {} | 44 ~FakeUrlRequestFactory() override {} |
| 44 | 45 |
| 45 void SetResult(const std::string& url, const UrlRequest::Result& result) { | 46 void SetResult(const std::string& url, const UrlRequest::Result& result) { |
| 46 results_[url] = result; | 47 results_[url] = result; |
| 47 } | 48 } |
| 48 | 49 |
| 49 // UrlRequestFactory interface. | 50 // UrlRequestFactory interface. |
| 50 scoped_ptr<UrlRequest> CreateUrlRequest(UrlRequest::Type type, | 51 std::unique_ptr<UrlRequest> CreateUrlRequest( |
| 51 const std::string& url) override { | 52 UrlRequest::Type type, |
| 53 const std::string& url) override { |
| 52 EXPECT_EQ(UrlRequest::Type::POST, type); | 54 EXPECT_EQ(UrlRequest::Type::POST, type); |
| 53 CHECK(results_.count(url)); | 55 CHECK(results_.count(url)); |
| 54 return make_scoped_ptr(new FakeUrlRequest(results_[url])); | 56 return base::WrapUnique(new FakeUrlRequest(results_[url])); |
| 55 } | 57 } |
| 56 | 58 |
| 57 std::map<std::string, UrlRequest::Result> results_; | 59 std::map<std::string, UrlRequest::Result> results_; |
| 58 }; | 60 }; |
| 59 | 61 |
| 60 bool operator==(const cricket::ProtocolAddress& a, | 62 bool operator==(const cricket::ProtocolAddress& a, |
| 61 const cricket::ProtocolAddress& b) { | 63 const cricket::ProtocolAddress& b) { |
| 62 return a.address == b.address && a.proto == b.proto && a.secure == b.secure; | 64 return a.address == b.address && a.proto == b.proto && a.secure == b.secure; |
| 63 } | 65 } |
| 64 bool operator==(const cricket::RelayServerConfig& a, | 66 bool operator==(const cricket::RelayServerConfig& a, |
| 65 const cricket::RelayServerConfig& b) { | 67 const cricket::RelayServerConfig& b) { |
| 66 if (a.ports.size() != b.ports.size()) | 68 if (a.ports.size() != b.ports.size()) |
| 67 return false; | 69 return false; |
| 68 for (size_t i = 0; i < a.ports.size(); ++i) { | 70 for (size_t i = 0; i < a.ports.size(); ++i) { |
| 69 if (!(a.ports[i] == b.ports[i])) | 71 if (!(a.ports[i] == b.ports[i])) |
| 70 return false; | 72 return false; |
| 71 } | 73 } |
| 72 return a.type == b.type && | 74 return a.type == b.type && |
| 73 a.credentials.username == b.credentials.username && | 75 a.credentials.username == b.credentials.username && |
| 74 a.credentials.password == b.credentials.password; | 76 a.credentials.password == b.credentials.password; |
| 75 } | 77 } |
| 76 | 78 |
| 77 } // namespace | 79 } // namespace |
| 78 | 80 |
| 79 static const char kTestUrl[] = "http://host/ice_config"; | 81 static const char kTestUrl[] = "http://host/ice_config"; |
| 80 | 82 |
| 81 class HttpIceConfigRequestTest : public testing::Test { | 83 class HttpIceConfigRequestTest : public testing::Test { |
| 82 public: | 84 public: |
| 83 void OnResult(const IceConfig& config) { | 85 void OnResult(const IceConfig& config) { |
| 84 received_config_ = make_scoped_ptr(new IceConfig(config)); | 86 received_config_ = base::WrapUnique(new IceConfig(config)); |
| 85 } | 87 } |
| 86 | 88 |
| 87 protected: | 89 protected: |
| 88 FakeUrlRequestFactory url_request_factory_; | 90 FakeUrlRequestFactory url_request_factory_; |
| 89 scoped_ptr<HttpIceConfigRequest> request_; | 91 std::unique_ptr<HttpIceConfigRequest> request_; |
| 90 scoped_ptr<IceConfig> received_config_; | 92 std::unique_ptr<IceConfig> received_config_; |
| 91 }; | 93 }; |
| 92 | 94 |
| 93 TEST_F(HttpIceConfigRequestTest, Parse) { | 95 TEST_F(HttpIceConfigRequestTest, Parse) { |
| 94 const char kTestResponse[] = | 96 const char kTestResponse[] = |
| 95 "{" | 97 "{" |
| 96 " \"lifetimeDuration\": \"43200.000s\"," | 98 " \"lifetimeDuration\": \"43200.000s\"," |
| 97 " \"iceServers\": [" | 99 " \"iceServers\": [" |
| 98 " {" | 100 " {" |
| 99 " \"urls\": [" | 101 " \"urls\": [" |
| 100 " \"turn:8.8.8.8:19234\"," | 102 " \"turn:8.8.8.8:19234\"," |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 202 TEST_F(HttpIceConfigRequestTest, FailedRequest) { | 204 TEST_F(HttpIceConfigRequestTest, FailedRequest) { |
| 203 url_request_factory_.SetResult(kTestUrl, UrlRequest::Result::Failed()); | 205 url_request_factory_.SetResult(kTestUrl, UrlRequest::Result::Failed()); |
| 204 request_.reset(new HttpIceConfigRequest(&url_request_factory_, kTestUrl)); | 206 request_.reset(new HttpIceConfigRequest(&url_request_factory_, kTestUrl)); |
| 205 request_->Send( | 207 request_->Send( |
| 206 base::Bind(&HttpIceConfigRequestTest::OnResult, base::Unretained(this))); | 208 base::Bind(&HttpIceConfigRequestTest::OnResult, base::Unretained(this))); |
| 207 EXPECT_TRUE(received_config_->is_null()); | 209 EXPECT_TRUE(received_config_->is_null()); |
| 208 } | 210 } |
| 209 | 211 |
| 210 } // namespace protocol | 212 } // namespace protocol |
| 211 } // namespace remoting | 213 } // namespace remoting |
| OLD | NEW |