@@ -1052,7 +1052,7 @@ namespace Azure { namespace Storage { namespace Test {
10521052 {
10531053 const std::string non_ascii_word = " \xE6\xB5\x8B\xE8\xAF\x95 " ;
10541054 const std::string encoded_non_ascii_word = " %E6%B5%8B%E8%AF%95" ;
1055- std::string baseBlobName = " a b c / !@#$%^&*() def" + non_ascii_word;
1055+ std::string baseBlobName = " a b c / !@#$%^&*(?/<>,.;:' \" []{}|`~ \\ ) def" + non_ascii_word;
10561056
10571057 {
10581058 std::string blobName = baseBlobName + RandomString ();
@@ -1081,6 +1081,48 @@ namespace Azure { namespace Storage { namespace Test {
10811081 blobUrl,
10821082 m_blobContainerClient->GetUri () + " /" + Storage::Details::UrlEncodePath (blobName));
10831083 }
1084+
1085+ {
1086+ std::string blobName = baseBlobName + RandomString ();
1087+ auto blobClient = Blobs::AppendBlobClient::CreateFromConnectionString (
1088+ StandardStorageConnectionString (), m_containerName, blobName);
1089+ EXPECT_NO_THROW (blobClient.Create ());
1090+ auto blobUrl = blobClient.GetUri ();
1091+ EXPECT_EQ (
1092+ blobUrl,
1093+ m_blobContainerClient->GetUri () + " /" + Storage::Details::UrlEncodePath (blobName));
1094+ }
1095+ {
1096+ std::string blobName = baseBlobName + RandomString ();
1097+ auto blobClient = Blobs::PageBlobClient::CreateFromConnectionString (
1098+ StandardStorageConnectionString (), m_containerName, blobName);
1099+ EXPECT_NO_THROW (blobClient.Create (1024 ));
1100+ auto blobUrl = blobClient.GetUri ();
1101+ EXPECT_EQ (
1102+ blobUrl,
1103+ m_blobContainerClient->GetUri () + " /" + Storage::Details::UrlEncodePath (blobName));
1104+ }
1105+ {
1106+ std::string blobName = baseBlobName + RandomString ();
1107+ auto blobClient = Blobs::BlockBlobClient::CreateFromConnectionString (
1108+ StandardStorageConnectionString (), m_containerName, blobName);
1109+ EXPECT_NO_THROW (blobClient.UploadFrom (nullptr , 0 ));
1110+ auto blobUrl = blobClient.GetUri ();
1111+ EXPECT_EQ (
1112+ blobUrl,
1113+ m_blobContainerClient->GetUri () + " /" + Storage::Details::UrlEncodePath (blobName));
1114+ }
1115+ }
1116+
1117+ TEST_F (BlobContainerClientTest, QuestionMarkBlobName)
1118+ {
1119+ std::string blobName = " ?" ;
1120+ auto blobClient = m_blobContainerClient->GetAppendBlobClient (blobName);
1121+ EXPECT_NO_THROW (blobClient.Create ());
1122+ auto blobUrl = blobClient.GetUri ();
1123+ EXPECT_EQ (
1124+ blobUrl,
1125+ m_blobContainerClient->GetUri () + " /" + Storage::Details::UrlEncodePath (blobName));
10841126 }
10851127
10861128}}} // namespace Azure::Storage::Test
0 commit comments