Index: extensions/browser/api/cast_channel/cast_socket_unittest.cc |
diff --git a/extensions/browser/api/cast_channel/cast_socket_unittest.cc b/extensions/browser/api/cast_channel/cast_socket_unittest.cc |
index 95d6ed1960441ab5c2d061938334beefb4806bd3..bf08e13792e83cea9025aa9f0edefc962e19595c 100644 |
--- a/extensions/browser/api/cast_channel/cast_socket_unittest.cc |
+++ b/extensions/browser/api/cast_channel/cast_socket_unittest.cc |
@@ -13,6 +13,7 @@ |
#include "base/sys_byteorder.h" |
#include "base/test/simple_test_tick_clock.h" |
#include "base/timer/mock_timer.h" |
+#include "extensions/browser/api/cast_channel/cast_auth_util.h" |
#include "extensions/browser/api/cast_channel/cast_framer.h" |
#include "extensions/browser/api/cast_channel/cast_message_util.h" |
#include "extensions/browser/api/cast_channel/cast_transport.h" |
@@ -175,28 +176,34 @@ class CompleteHandler { |
class TestCastSocket : public CastSocketImpl { |
public: |
- static scoped_ptr<TestCastSocket> Create(Logger* logger) { |
+ static scoped_ptr<TestCastSocket> Create( |
+ Logger* logger, |
+ long device_capabilities = cast_channel::CastDeviceCapability::NONE) { |
return scoped_ptr<TestCastSocket>( |
new TestCastSocket(CreateIPEndPointForTest(), CHANNEL_AUTH_TYPE_SSL, |
- kDistantTimeoutMillis, logger)); |
+ kDistantTimeoutMillis, logger, device_capabilities)); |
} |
- static scoped_ptr<TestCastSocket> CreateSecure(Logger* logger) { |
+ static scoped_ptr<TestCastSocket> CreateSecure( |
+ Logger* logger, |
+ long device_capabilities = cast_channel::CastDeviceCapability::NONE) { |
return scoped_ptr<TestCastSocket>(new TestCastSocket( |
CreateIPEndPointForTest(), CHANNEL_AUTH_TYPE_SSL_VERIFIED, |
- kDistantTimeoutMillis, logger)); |
+ kDistantTimeoutMillis, logger, device_capabilities)); |
} |
explicit TestCastSocket(const net::IPEndPoint& ip_endpoint, |
ChannelAuthType channel_auth, |
int64 timeout_ms, |
- Logger* logger) |
+ Logger* logger, |
+ long device_capabilities) |
: CastSocketImpl("some_extension_id", |
ip_endpoint, |
channel_auth, |
&capturing_net_log_, |
base::TimeDelta::FromMilliseconds(timeout_ms), |
- logger), |
+ logger, |
+ device_capabilities), |
ip_(ip_endpoint), |
connect_index_(0), |
extract_cert_result_(true), |
@@ -262,6 +269,17 @@ class TestCastSocket : public CastSocketImpl { |
mock_timer_->Fire(); |
} |
+ bool TestVerifyChannelPolicyNone() { |
+ AuthResult authResult; |
+ return VerifyChannelPolicy(authResult); |
+ } |
+ |
+ bool TestVerifyChannelPolicyAudioOnly() { |
+ AuthResult authResult; |
+ authResult.channel_policies |= AuthResult::POLICY_AUDIO_ONLY; |
+ return VerifyChannelPolicy(authResult); |
+ } |
+ |
void DisallowVerifyChallengeResult() { verify_challenge_disallow_ = true; } |
MockCastTransport* GetMockTransport() { |
@@ -861,6 +879,22 @@ TEST_F(CastSocketTest, TestConnectEndToEndWithRealTransportSync) { |
EXPECT_EQ(cast_channel::READY_STATE_OPEN, socket_->ready_state()); |
EXPECT_EQ(cast_channel::CHANNEL_ERROR_NONE, socket_->error_state()); |
} |
+ |
+// Tests channel policy verification for device with no capabilities. |
+TEST_F(CastSocketTest, TestChannelPolicyVerificationCapabilitiesNone) { |
+ socket_ = |
+ TestCastSocket::Create(logger_, cast_channel::CastDeviceCapability::NONE); |
+ EXPECT_TRUE(socket_->TestVerifyChannelPolicyNone()); |
+ EXPECT_TRUE(socket_->TestVerifyChannelPolicyAudioOnly()); |
+} |
+ |
+// Tests channel policy verification for device with video out capability. |
+TEST_F(CastSocketTest, TestChannelPolicyVerificationCapabilitiesVideoOut) { |
+ socket_ = TestCastSocket::Create( |
+ logger_, cast_channel::CastDeviceCapability::VIDEO_OUT); |
+ EXPECT_TRUE(socket_->TestVerifyChannelPolicyNone()); |
+ EXPECT_FALSE(socket_->TestVerifyChannelPolicyAudioOnly()); |
+} |
} // namespace cast_channel |
} // namespace core_api |
} // namespace extensions |