Author: lgross
Date: Thu May 15 14:13:12 2014
New Revision: 1594923

URL: http://svn.apache.org/r1594923
Log:
CMIS-802: Browser Binding: URL encoder should use RFC-3986 reserved characters 
for encoding

Modified:
    
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Utils/CMISURLUtil.m
    
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMISTests/ObjectiveCMISTests.m

Modified: 
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Utils/CMISURLUtil.m
URL: 
http://svn.apache.org/viewvc/chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Utils/CMISURLUtil.m?rev=1594923&r1=1594922&r2=1594923&view=diff
==============================================================================
--- 
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Utils/CMISURLUtil.m
 (original)
+++ 
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMIS/Utils/CMISURLUtil.m
 Thu May 15 14:13:12 2014
@@ -21,6 +21,7 @@
 #import "CMISConstants.h"
 
 NSString * const kCMISRFC7232Reserved = @";?:@&=+$,[]";
+NSString * const kCMISRFC3986Reserved = @"!*'();:@&=+$,/?%#[]";
 
 
 @implementation CMISURLUtil
@@ -92,7 +93,7 @@ NSString * const kCMISRFC7232Reserved = 
     NSString *encodedValue = 
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(NULL,
                                                                                
        (CFStringRef)value,
                                                                                
        NULL,
-                                                                               
        (CFStringRef)kCMISRFC7232Reserved,
+                                                                               
        (CFStringRef)kCMISRFC3986Reserved,
                                                                                
        kCFStringEncodingUTF8));
     return encodedValue;
 }

Modified: 
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMISTests/ObjectiveCMISTests.m
URL: 
http://svn.apache.org/viewvc/chemistry/objectivecmis/branches/browser-binding/ObjectiveCMISTests/ObjectiveCMISTests.m?rev=1594923&r1=1594922&r2=1594923&view=diff
==============================================================================
--- 
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMISTests/ObjectiveCMISTests.m
 (original)
+++ 
chemistry/objectivecmis/branches/browser-binding/ObjectiveCMISTests/ObjectiveCMISTests.m
 Thu May 15 14:13:12 2014
@@ -2114,4 +2114,14 @@
     XCTAssertEqualObjects(@"attachment; 
filename*=UTF-8''%20%27%2A%25%20abc%20%C2%81%C2%82%0D%0A%09", [CMISMimeHelper 
encodeContentDisposition:nil fileName:fileName], @"wrong encoded content 
disposition");
 }
 
+- (void)testEncodeUrlParameterValue
+{
+    XCTAssertEqualObjects(@"test%20%2B%20%2Fvalue%20%26%20", [CMISURLUtil 
encodeUrlParameterValue:@"test + /value & "], @"wrong encoded url parameter 
value");
+    XCTAssertEqualObjects(@"%20%25%20%22%20", [CMISURLUtil 
encodeUrlParameterValue:@" % \" "], @"wrong encoded url parameter value");
+    
XCTAssertEqualObjects(@"%20%60~%21%40%23%24%25%5E%26%2A%28%29_%2B-%3D%7B%7D%5B%5D%7C%5C%3A%3B%22%27%3C%2C%3E.%3F%2FAZaz",
 [CMISURLUtil encodeUrlParameterValue:@" 
`~!@#$%^&*()_+-={}[]|\\:;\"'<,>.?/AZaz"], @"wrong encoded url parameter value");
+    XCTAssertEqualObjects(@"%E5%BD%BC%E5%BE%97", [CMISURLUtil 
encodeUrlParameterValue:@"彼得"], @"wrong encoded url parameter value");
+    
+    XCTAssertEqualObjects(@"%C3%BC%C3%A4%C3%B6%C3%9C%C3%84%C3%96%C3%A9%C4%9F", 
[CMISURLUtil encodeUrlParameterValue:@"üäöÜÄÖéğ"], @"wrong encoded url 
parameter value");
+}
+
 @end


Reply via email to