blob: 025e04d8ce9463382d73961744e91c29b6dec119 [file] [log] [blame]
// Copyright 2017 Google Inc. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#include "cobalt/network/local_network.h"
#include "base/logging.h"
#include "cobalt/network/socket_address_parser.h"
#include "googleurl/src/url_parse.h"
#include "starboard/socket.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace cobalt {
namespace network {
template <size_t N>
SbSocketAddress ParseSocketAddress(const char(&address)[N]) {
const char* spec = address;
url_parse::Component component = url_parse::MakeRange(0, N - 1);
SbSocketAddress out_socket_address;
SbMemorySet(&out_socket_address, 0, sizeof(SbSocketAddress));
CHECK(ParseSocketAddress(spec, component, &out_socket_address));
return out_socket_address;
}
TEST(IsPrivateRange, v4) {
EXPECT_TRUE(IsIPInPrivateRange(ParseSocketAddress("10.0.0.1")));
EXPECT_TRUE(IsIPInPrivateRange(ParseSocketAddress("172.16.1.1")));
EXPECT_TRUE(IsIPInPrivateRange(ParseSocketAddress("192.168.1.1")));
EXPECT_FALSE(IsIPInPrivateRange(ParseSocketAddress("127.0.0.1")));
EXPECT_FALSE(IsIPInPrivateRange(ParseSocketAddress("143.195.170.1")));
EXPECT_FALSE(IsIPInPrivateRange(ParseSocketAddress("0.0.0.0")));
EXPECT_FALSE(IsIPInPrivateRange(ParseSocketAddress("239.255.255.255")));
}
#if SB_HAS(IPV6)
TEST(IsPrivateRange, v6) {
EXPECT_TRUE(IsIPInPrivateRange(ParseSocketAddress("[fd00::]")));
EXPECT_TRUE(IsIPInPrivateRange(ParseSocketAddress("[fd00:1:2:3:4:5::]")));
EXPECT_FALSE(IsIPInPrivateRange(ParseSocketAddress("[fe80::]")));
EXPECT_FALSE(IsIPInPrivateRange(
ParseSocketAddress("[2606:2800:220:1:248:1893:25c8:1946]")));
}
#endif // SB_HAS(IPV6)
} // namespace network
} // namespace cobalt