| 1305 | |
| 1306 | namespace { |
| 1307 | bool testNormalizeMaskHelper(const wchar_t * uriText, unsigned int expectedMask) { |
| 1308 | UriParserStateW state; |
| 1309 | UriUriW uri; |
| 1310 | state.uri = &uri; |
| 1311 | int res = uriParseUriW(&state, uriText); |
| 1312 | if (res != 0) { |
| 1313 | uriFreeUriMembersW(&uri); |
| 1314 | return false; |
| 1315 | } |
| 1316 | |
| 1317 | const unsigned int maskBefore = uriNormalizeSyntaxMaskRequiredW(&uri); |
| 1318 | if (maskBefore != expectedMask) { |
| 1319 | uriFreeUriMembersW(&uri); |
| 1320 | return false; |
| 1321 | } |
| 1322 | |
| 1323 | res = uriNormalizeSyntaxW(&uri); |
| 1324 | if (res != 0) { |
| 1325 | uriFreeUriMembersW(&uri); |
| 1326 | return false; |
| 1327 | } |
| 1328 | |
| 1329 | const unsigned int maskAfter = uriNormalizeSyntaxMaskRequiredW(&uri); |
| 1330 | uriFreeUriMembersW(&uri); |
| 1331 | |
| 1332 | // Second call should be no problem |
| 1333 | uriFreeUriMembersW(&uri); |
| 1334 | |
| 1335 | return (maskAfter == URI_NORMALIZED); |
| 1336 | } |
| 1337 | } // namespace |
| 1338 | |
| 1339 | TEST(UriSuite, TestNormalizeSyntaxMaskRequired) { |