| 2060 | |
| 2061 | namespace { |
| 2062 | void testRemoveBaseUriHelper(const char * expected, |
| 2063 | const char * absSourceStr, |
| 2064 | const char * absBaseStr) { |
| 2065 | UriParserStateA state; |
| 2066 | UriUriA absSource; |
| 2067 | UriUriA absBase; |
| 2068 | UriUriA dest; |
| 2069 | |
| 2070 | state.uri = &absSource; |
| 2071 | ASSERT_TRUE(uriParseUriA(&state, absSourceStr) == URI_SUCCESS); |
| 2072 | |
| 2073 | state.uri = &absBase; |
| 2074 | ASSERT_TRUE(uriParseUriA(&state, absBaseStr) == URI_SUCCESS); |
| 2075 | |
| 2076 | ASSERT_TRUE(uriRemoveBaseUriA(&dest, &absSource, &absBase, URI_FALSE) |
| 2077 | == URI_SUCCESS); |
| 2078 | |
| 2079 | int size = 0; |
| 2080 | ASSERT_TRUE(uriToStringCharsRequiredA(&dest, &size) == URI_SUCCESS); |
| 2081 | char * const buffer = (char *)malloc(size + 1); |
| 2082 | ASSERT_TRUE(buffer); |
| 2083 | ASSERT_TRUE(uriToStringA(buffer, &dest, size + 1, &size) |
| 2084 | == URI_SUCCESS); |
| 2085 | if (strcmp(buffer, expected)) { |
| 2086 | printf("Expected \"%s\" but got \"%s\"\n", expected, buffer); |
| 2087 | ASSERT_TRUE(0); |
| 2088 | } |
| 2089 | free(buffer); |
| 2090 | |
| 2091 | uriFreeUriMembersA(&absSource); |
| 2092 | uriFreeUriMembersA(&absBase); |
| 2093 | uriFreeUriMembersA(&dest); |
| 2094 | } |
| 2095 | } // namespace |
| 2096 | |
| 2097 | TEST(UriSuite, TestRangeComparisonRemoveBaseUriIssue19) { |