Fix UU_REPLACE_PLUS_WITH_SPACE value to match Chromium (fixes issue #2904)
This commit is contained in:
parent
a5de549456
commit
261a8899fc
|
@ -2303,21 +2303,10 @@ typedef enum {
|
||||||
///
|
///
|
||||||
UU_URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS = 1 << 3,
|
UU_URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS = 1 << 3,
|
||||||
|
|
||||||
///
|
|
||||||
// Unescapes characters that can be used in spoofing attempts (such as LOCK)
|
|
||||||
// and control characters (such as BiDi control characters and %01). This
|
|
||||||
// INCLUDES NULLs. This is used for rare cases such as data: URL decoding
|
|
||||||
// where the result is binary data.
|
|
||||||
//
|
|
||||||
// DO NOT use UU_SPOOFING_AND_CONTROL_CHARS if the URL is going to be
|
|
||||||
// displayed in the UI for security reasons.
|
|
||||||
///
|
|
||||||
UU_SPOOFING_AND_CONTROL_CHARS = 1 << 4,
|
|
||||||
|
|
||||||
///
|
///
|
||||||
// URL queries use "+" for space. This flag controls that replacement.
|
// URL queries use "+" for space. This flag controls that replacement.
|
||||||
///
|
///
|
||||||
UU_REPLACE_PLUS_WITH_SPACE = 1 << 5,
|
UU_REPLACE_PLUS_WITH_SPACE = 1 << 4,
|
||||||
} cef_uri_unescape_rule_t;
|
} cef_uri_unescape_rule_t;
|
||||||
|
|
||||||
///
|
///
|
||||||
|
|
|
@ -329,6 +329,13 @@ TEST(ParserTest, URIEncode) {
|
||||||
EXPECT_STREQ(test_str_encoded.c_str(), encoded_value.ToString().c_str());
|
EXPECT_STREQ(test_str_encoded.c_str(), encoded_value.ToString().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(ParserTest, URIEncodeWithPlusSpace) {
|
||||||
|
const std::string& test_str_decoded = "A test string=";
|
||||||
|
const std::string& test_str_encoded = "A+test+string%3D";
|
||||||
|
const CefString& encoded_value = CefURIEncode(test_str_decoded, true);
|
||||||
|
EXPECT_STREQ(test_str_encoded.c_str(), encoded_value.ToString().c_str());
|
||||||
|
}
|
||||||
|
|
||||||
TEST(ParserTest, URIDecode) {
|
TEST(ParserTest, URIDecode) {
|
||||||
const std::string& test_str_decoded = "A test string=";
|
const std::string& test_str_decoded = "A test string=";
|
||||||
const std::string& test_str_encoded = "A%20test%20string%3D";
|
const std::string& test_str_encoded = "A%20test%20string%3D";
|
||||||
|
@ -339,6 +346,17 @@ TEST(ParserTest, URIDecode) {
|
||||||
EXPECT_STREQ(test_str_decoded.c_str(), decoded_value.ToString().c_str());
|
EXPECT_STREQ(test_str_decoded.c_str(), decoded_value.ToString().c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(ParserTest, URIDecodeWithPlusSpace) {
|
||||||
|
const std::string& test_str_decoded = "A test string=";
|
||||||
|
const std::string& test_str_encoded = "A+test+string%3D";
|
||||||
|
const CefString& decoded_value =
|
||||||
|
CefURIDecode(test_str_encoded, false,
|
||||||
|
static_cast<cef_uri_unescape_rule_t>(
|
||||||
|
UU_SPACES | UU_URL_SPECIAL_CHARS_EXCEPT_PATH_SEPARATORS |
|
||||||
|
UU_REPLACE_PLUS_WITH_SPACE));
|
||||||
|
EXPECT_STREQ(test_str_decoded.c_str(), decoded_value.ToString().c_str());
|
||||||
|
}
|
||||||
|
|
||||||
TEST(ParserTest, ParseJSONInvalid) {
|
TEST(ParserTest, ParseJSONInvalid) {
|
||||||
const char data[] = "This is my test data";
|
const char data[] = "This is my test data";
|
||||||
CefRefPtr<CefValue> value = CefParseJSON(data, JSON_PARSER_RFC);
|
CefRefPtr<CefValue> value = CefParseJSON(data, JSON_PARSER_RFC);
|
||||||
|
|
Loading…
Reference in New Issue