@@ -662,8 +662,8 @@ class ServerTest : public ::testing::Test {
662
662
}
663
663
664
664
virtual void SetUp () {
665
- svr_.set_base_dir (" ./www" );
666
- svr_.set_base_dir (" ./www2" , " /mount" );
665
+ svr_.set_mount_point (" ./www" , " / " );
666
+ svr_.set_mount_point (" ./www2" , " /mount" );
667
667
svr_.set_file_extension_and_mimetype_mapping (" abcde" , " text/abcde" );
668
668
669
669
svr_.Get (" /hi" ,
@@ -1245,7 +1245,7 @@ TEST_F(ServerTest, UserDefinedMIMETypeMapping) {
1245
1245
}
1246
1246
1247
1247
TEST_F (ServerTest, InvalidBaseDirMount) {
1248
- EXPECT_EQ (false , svr_.set_base_dir (" ./www3" , " invalid_mount_point" ));
1248
+ EXPECT_EQ (false , svr_.set_mount_point (" ./www3" , " invalid_mount_point" ));
1249
1249
}
1250
1250
1251
1251
TEST_F (ServerTest, EmptyRequest) {
@@ -2069,6 +2069,50 @@ TEST(ServerStopTest, StopServerWithChunkedTransmission) {
2069
2069
ASSERT_FALSE (svr.is_running ());
2070
2070
}
2071
2071
2072
+ TEST (MountTest, Unmount) {
2073
+ Server svr;
2074
+
2075
+ auto listen_thread = std::thread ([&svr]() { svr.listen (" localhost" , PORT); });
2076
+ while (!svr.is_running ()) {
2077
+ std::this_thread::sleep_for (std::chrono::milliseconds (1 ));
2078
+ }
2079
+
2080
+ // Give GET time to get a few messages.
2081
+ std::this_thread::sleep_for (std::chrono::seconds (1 ));
2082
+
2083
+ Client cli (" localhost" , PORT);
2084
+
2085
+ svr.set_mount_point (" ./www2" , " /mount2" );
2086
+
2087
+ auto res = cli.Get (" /" );
2088
+ ASSERT_TRUE (res != nullptr );
2089
+ EXPECT_EQ (404 , res->status );
2090
+
2091
+ res = cli.Get (" /mount2/dir/test.html" );
2092
+ ASSERT_TRUE (res != nullptr );
2093
+ EXPECT_EQ (200 , res->status );
2094
+
2095
+ svr.set_mount_point (" ./www" , " /" );
2096
+
2097
+ res = cli.Get (" /dir/" );
2098
+ ASSERT_TRUE (res != nullptr );
2099
+ EXPECT_EQ (200 , res->status );
2100
+
2101
+ svr.remove_mount_point (" /" );
2102
+ res = cli.Get (" /dir/" );
2103
+ ASSERT_TRUE (res != nullptr );
2104
+ EXPECT_EQ (404 , res->status );
2105
+
2106
+ svr.remove_mount_point (" /mount2" );
2107
+ res = cli.Get (" /mount2/dir/test.html" );
2108
+ ASSERT_TRUE (res != nullptr );
2109
+ EXPECT_EQ (404 , res->status );
2110
+
2111
+ svr.stop ();
2112
+ listen_thread.join ();
2113
+ ASSERT_FALSE (svr.is_running ());
2114
+ }
2115
+
2072
2116
class ServerTestWithAI_PASSIVE : public ::testing::Test {
2073
2117
protected:
2074
2118
ServerTestWithAI_PASSIVE ()
0 commit comments