| 1348 | |
| 1349 | namespace { |
| 1350 | bool testNormalizeSyntaxHelper(const wchar_t * uriText, const wchar_t * expectedNormalized, |
| 1351 | unsigned int mask = static_cast<unsigned int>(-1)) { |
| 1352 | UriParserStateW stateW; |
| 1353 | int res; |
| 1354 | |
| 1355 | UriUriW testUri; |
| 1356 | stateW.uri = &testUri; |
| 1357 | res = uriParseUriW(&stateW, uriText); |
| 1358 | if (res != 0) { |
| 1359 | uriFreeUriMembersW(&testUri); |
| 1360 | return false; |
| 1361 | } |
| 1362 | |
| 1363 | // Expected result |
| 1364 | UriUriW expectedUri; |
| 1365 | stateW.uri = &expectedUri; |
| 1366 | res = uriParseUriW(&stateW, expectedNormalized); |
| 1367 | if (res != 0) { |
| 1368 | uriFreeUriMembersW(&testUri); |
| 1369 | uriFreeUriMembersW(&expectedUri); |
| 1370 | return false; |
| 1371 | } |
| 1372 | |
| 1373 | // First run |
| 1374 | res = uriNormalizeSyntaxExW(&testUri, mask); |
| 1375 | if (res != 0) { |
| 1376 | uriFreeUriMembersW(&testUri); |
| 1377 | uriFreeUriMembersW(&expectedUri); |
| 1378 | return false; |
| 1379 | } |
| 1380 | |
| 1381 | bool equalAfter = (URI_TRUE == uriEqualsUriW(&testUri, &expectedUri)); |
| 1382 | |
| 1383 | // Second run |
| 1384 | res = uriNormalizeSyntaxExW(&testUri, mask); |
| 1385 | if (res != 0) { |
| 1386 | uriFreeUriMembersW(&testUri); |
| 1387 | uriFreeUriMembersW(&expectedUri); |
| 1388 | return false; |
| 1389 | } |
| 1390 | |
| 1391 | equalAfter = equalAfter |
| 1392 | && (URI_TRUE == uriEqualsUriW(&testUri, &expectedUri)); |
| 1393 | |
| 1394 | uriFreeUriMembersW(&testUri); |
| 1395 | uriFreeUriMembersW(&expectedUri); |
| 1396 | return equalAfter; |
| 1397 | } |
| 1398 | } // namespace |
| 1399 | |
| 1400 | TEST(UriSuite, TestNormalizeSyntax) { |