18 #include <gtest/gtest.h>
29 void TestUrl(
const string& input,
const string& expected_encoded,
bool hive_compat) {
31 UrlEncode(input, &intermediate, hive_compat);
33 if (!expected_encoded.empty()) {
34 EXPECT_EQ(intermediate, expected_encoded);
36 EXPECT_TRUE(
UrlDecode(intermediate, &output, hive_compat));
37 EXPECT_EQ(input, output);
40 vector<uint8_t> input_vector;
41 input_vector.resize(input.size());
42 memcpy(&input_vector[0], input.c_str(), input.size());
44 UrlEncode(input_vector, &intermediate2, hive_compat);
45 EXPECT_EQ(intermediate, intermediate2);
48 void TestBase64(
const string& input,
const string& expected_encoded) {
52 if (!expected_encoded.empty()) {
53 EXPECT_EQ(intermediate, expected_encoded);
56 EXPECT_EQ(input, output);
59 vector<uint8_t> input_vector;
60 input_vector.resize(input.size());
61 memcpy(&input_vector[0], input.c_str(), input.size());
64 EXPECT_EQ(intermediate, intermediate2);
69 TEST(UrlCodingTest, Basic) {
70 string input =
"ABCDEFGHIJKLMNOPQRSTUWXYZ1234567890~!@#$%^&*()<>?,./:\";'{}|[]\\_+-=";
75 TEST(UrlCodingTest, HiveExceptions) {
79 TEST(UrlCodingTest, BlankString) {
84 TEST(UrlCodingTest, PathSeparators) {
85 TestUrl(
"/home/impala/directory/",
"%2Fhome%2Fimpala%2Fdirectory%2F",
false);
86 TestUrl(
"/home/impala/directory/",
"%2Fhome%2Fimpala%2Fdirectory%2F",
true);
98 TEST(HtmlEscapingTest, Basic) {
99 string before =
"<html><body>&";
102 EXPECT_EQ(after.str(),
"<html><body>&amp");
107 int main(
int argc,
char **argv) {
108 ::testing::InitGoogleTest(&argc, argv);
109 return RUN_ALL_TESTS();
void TestUrl(const string &input, const string &expected_encoded, bool hive_compat)
bool UrlDecode(const string &in, string *out, bool hive_compat)
static void Base64Encode(const char *in, int in_len, stringstream *out)
static void UrlEncode(const char *in, int in_len, string *out, bool hive_compat)
void TestBase64(const string &input, const string &expected_encoded)
bool Base64Decode(const string &in, string *out)
void EscapeForHtml(const string &in, stringstream *out)
int main(int argc, char **argv)