face: support IPv6-only WebSocket channels
Change-Id: Ib9ba27d04611c13882e50995d701fc1b707cea5f
Refs: #4710
diff --git a/tests/daemon/face/websocket-factory.t.cpp b/tests/daemon/face/websocket-factory.t.cpp
index 5c85e2e..1234737 100644
--- a/tests/daemon/face/websocket-factory.t.cpp
+++ b/tests/daemon/face/websocket-factory.t.cpp
@@ -61,10 +61,10 @@
parseConfig(CONFIG, true);
parseConfig(CONFIG, false);
- checkChannelListEqual(factory, {"ws://[::]:9696"});
+ checkChannelListEqual(factory, {"ws://0.0.0.0:9696", "ws://[::]:9696"});
auto channels = factory.getChannels();
BOOST_CHECK(std::all_of(channels.begin(), channels.end(),
- [] (const shared_ptr<const Channel>& ch) { return ch->isListening(); }));
+ [] (const auto& ch) { return ch->isListening(); }));
}
BOOST_AUTO_TEST_CASE(DisableListen)
@@ -100,8 +100,10 @@
}
)CONFIG";
- BOOST_CHECK_THROW(parseConfig(CONFIG, true), ConfigFile::Error);
- BOOST_CHECK_THROW(parseConfig(CONFIG, false), ConfigFile::Error);
+ parseConfig(CONFIG, true);
+ parseConfig(CONFIG, false);
+
+ checkChannelListEqual(factory, {"ws://[::]:7001"});
}
BOOST_AUTO_TEST_CASE(DisableV6)
@@ -124,7 +126,7 @@
checkChannelListEqual(factory, {"ws://0.0.0.0:7001"});
}
-BOOST_AUTO_TEST_CASE(ChangeEndpoint)
+BOOST_AUTO_TEST_CASE(ChangePort)
{
const std::string CONFIG1 = R"CONFIG(
face_system
@@ -137,7 +139,7 @@
)CONFIG";
parseConfig(CONFIG1, false);
- checkChannelListEqual(factory, {"ws://[::]:9001"});
+ checkChannelListEqual(factory, {"ws://0.0.0.0:9001", "ws://[::]:9001"});
const std::string CONFIG2 = R"CONFIG(
face_system
@@ -150,7 +152,8 @@
)CONFIG";
parseConfig(CONFIG2, false);
- checkChannelListEqual(factory, {"ws://[::]:9001", "ws://[::]:9002"});
+ checkChannelListEqual(factory, {"ws://0.0.0.0:9001", "ws://[::]:9001",
+ "ws://0.0.0.0:9002", "ws://[::]:9002"});
}
BOOST_AUTO_TEST_CASE(Omitted)
@@ -275,6 +278,21 @@
checkChannelListEqual(factory, expected);
}
+BOOST_AUTO_TEST_CASE(CreateChannel)
+{
+ auto channel1 = createChannel("127.0.0.1", "20070");
+ auto channel1a = createChannel("127.0.0.1", "20070");
+ BOOST_CHECK_EQUAL(channel1, channel1a);
+ BOOST_CHECK_EQUAL(channel1->getUri().toString(), "ws://127.0.0.1:20070");
+
+ auto channel2 = createChannel("127.0.0.1", "20071");
+ BOOST_CHECK_NE(channel1, channel2);
+
+ auto channel3 = createChannel("::1", "20071");
+ BOOST_CHECK_NE(channel2, channel3);
+ BOOST_CHECK_EQUAL(channel3->getUri().toString(), "ws://[::1]:20071");
+}
+
BOOST_AUTO_TEST_CASE(UnsupportedCreateFace)
{
createFace(factory,