1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "remoting/protocol/network_settings.h" 6 7#include "testing/gtest/include/gtest/gtest.h" 8 9namespace remoting { 10namespace protocol { 11 12TEST(ParsePortRange, Basic) { 13 int min, max; 14 15 // Valid range 16 EXPECT_TRUE(NetworkSettings::ParsePortRange("1-65535", &min, &max)); 17 EXPECT_EQ(1, min); 18 EXPECT_EQ(65535, max); 19 20 EXPECT_TRUE(NetworkSettings::ParsePortRange(" 1 - 65535 ", &min, &max)); 21 EXPECT_EQ(1, min); 22 EXPECT_EQ(65535, max); 23 24 EXPECT_TRUE(NetworkSettings::ParsePortRange("12400-12400", &min, &max)); 25 EXPECT_EQ(12400, min); 26 EXPECT_EQ(12400, max); 27 28 // Invalid 29 EXPECT_FALSE(NetworkSettings::ParsePortRange("", &min, &max)); 30 EXPECT_FALSE(NetworkSettings::ParsePortRange("-65535", &min, &max)); 31 EXPECT_FALSE(NetworkSettings::ParsePortRange("1-", &min, &max)); 32 EXPECT_FALSE(NetworkSettings::ParsePortRange("-", &min, &max)); 33 EXPECT_FALSE(NetworkSettings::ParsePortRange("-1-65535", &min, &max)); 34 EXPECT_FALSE(NetworkSettings::ParsePortRange("1--65535", &min, &max)); 35 EXPECT_FALSE(NetworkSettings::ParsePortRange("1-65535-", &min, &max)); 36 EXPECT_FALSE(NetworkSettings::ParsePortRange("0-65535", &min, &max)); 37 EXPECT_FALSE(NetworkSettings::ParsePortRange("1-65536", &min, &max)); 38 EXPECT_FALSE(NetworkSettings::ParsePortRange("1-4294967295", &min, &max)); 39 EXPECT_FALSE(NetworkSettings::ParsePortRange("10-1", &min, &max)); 40 EXPECT_FALSE(NetworkSettings::ParsePortRange("1foo-2bar", &min, &max)); 41} 42 43} // namespace protocol 44} // namespace remoting 45