15c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Copyright 2014 The Chromium Authors. All rights reserved. 25c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// Use of this source code is governed by a BSD-style license that can be 35c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu// found in the LICENSE file. 45c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 5116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch#include "remoting/protocol/network_settings.h" 6116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch 75c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu#include "testing/gtest/include/gtest/gtest.h" 85c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 95c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liunamespace remoting { 10116680a4aac90f2aa7413d9095a592090648e557Ben Murdochnamespace protocol { 115c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 125c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo LiuTEST(ParsePortRange, Basic) { 135c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu int min, max; 145c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 155c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // Valid range 165c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(NetworkSettings::ParsePortRange("1-65535", &min, &max)); 175c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(1, min); 185c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(65535, max); 195c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 205c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(NetworkSettings::ParsePortRange(" 1 - 65535 ", &min, &max)); 215c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(1, min); 225c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(65535, max); 235c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 245c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_TRUE(NetworkSettings::ParsePortRange("12400-12400", &min, &max)); 255c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(12400, min); 265c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_EQ(12400, max); 275c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 285c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu // Invalid 295c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("", &min, &max)); 305c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("-65535", &min, &max)); 315c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("1-", &min, &max)); 325c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("-", &min, &max)); 335c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("-1-65535", &min, &max)); 345c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("1--65535", &min, &max)); 355c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("1-65535-", &min, &max)); 365c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("0-65535", &min, &max)); 375c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("1-65536", &min, &max)); 385c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("1-4294967295", &min, &max)); 395c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("10-1", &min, &max)); 405c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu EXPECT_FALSE(NetworkSettings::ParsePortRange("1foo-2bar", &min, &max)); 415c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} 425c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu 43116680a4aac90f2aa7413d9095a592090648e557Ben Murdoch} // namespace protocol 445c02ac1a9c1b504631c0a3d2b6e737b5d738bae1Bo Liu} // namespace remoting 45