PageRenderTime 55ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/Source/Unit Tests/MPOAuthURLRequestTests.m

https://github.com/between40and2/MPOAuth
Objective C | 100 lines | 66 code | 25 blank | 9 comment | 0 complexity | 4f586873bcccd3f02de2f96202f21489 MD5 | raw file
  1. //
  2. // MPOAuthURLRequestTests.m
  3. // MPOAuthConnection
  4. //
  5. // Created by Karl Adam on 08.12.18.
  6. // Copyright 2008 matrixPointer. All rights reserved.
  7. //
  8. #import "MPOAuthURLRequestTests.h"
  9. #import "MPOAuthAPI.h"
  10. #import "MPOAuthCredentialConcreteStore.h"
  11. #import "MPURLRequestParameter.h"
  12. #import "NSString+URLEscapingAdditions.h"
  13. @implementation MPOAuthURLRequestTests
  14. - (void)setUp {
  15. NSDictionary *credentials = [NSDictionary dictionaryWithObjectsAndKeys: @"dpf43f3p2l4k3l03", kMPOAuthCredentialConsumerKey,
  16. @"kd94hf93k423kf44", kMPOAuthCredentialConsumerSecret,
  17. nil];
  18. MPOAuthCredentialConcreteStore *credentialStore = [[MPOAuthCredentialConcreteStore alloc] initWithCredentials:credentials forBaseURL:nil];
  19. credentialStore.signatureMethod = @"PLAINTEXT";
  20. NSURL *url = [NSURL URLWithString:@"http://example.com/request_token"];
  21. _request = [[MPOAuthURLRequest alloc] initWithURL:url andParameters:nil];
  22. }
  23. - (void)testNSURLParameterEncoding_Core51 {
  24. STAssertEqualObjects([@"abcABC123" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  25. @"abcABC123", @"Incorrectly encoded Parameter String, Core 5.1");
  26. STAssertEqualObjects([@"-._~" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  27. @"-._~", @"Incorrectly Encoded Parameter String, Core 5.1");
  28. STAssertEqualObjects([@"%" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  29. @"%25", @"Incorrectly Encoded Parameter String, Core 5.1");
  30. STAssertEqualObjects([@"+" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  31. @"%2B", @"Incorrectly Encoded Parameter String, Core 5.1");
  32. STAssertEqualObjects([@"&=*" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  33. @"%26%3D%2A", @"Incorrectly Encoded Parameter String, Core 5.1");
  34. STAssertEqualObjects([@"\n" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  35. @"%0A", @"Incorrectly Encoded Parameter String, Core 5.1");
  36. STAssertEqualObjects([@" " stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  37. @"%20", @"Incorrectly Encoded Parameter String, Core 5.1");
  38. STAssertEqualObjects([@"\x7F" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  39. @"%7F", @"Incorrectly Encoded Parameter String, Core 5.1");
  40. // STAssertEqualObjects([@"\u80" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  41. // @"%C2%80", @"Incorrectly Encoded Parameter String, Core 5.1");
  42. STAssertEqualObjects([@"\u3001" stringByAddingURIPercentEscapesUsingEncoding:NSUTF8StringEncoding],
  43. @"%E3%80%81", @"Incorrectly Encoded Parameter String, Core 5.1");
  44. }
  45. - (void)testNormalizeRequestParameters_Core911 {
  46. NSMutableArray *parameterArray = [NSMutableArray arrayWithCapacity:10];
  47. MPURLRequestParameter *nameParameter = [[MPURLRequestParameter alloc] initWithName:@"name" andValue:nil] ;
  48. STAssertEqualObjects([nameParameter URLEncodedParameterString], @"name=", @"Incorrectly Normalized Request Parameters, Core 9.1.1");
  49. MPURLRequestParameter *aParameter = [[MPURLRequestParameter alloc] initWithName:@"a" andValue:@"b"] ;
  50. STAssertEqualObjects([aParameter URLEncodedParameterString], @"a=b", @"Incorrectly Normalized Request Parameters, Core 9.1.1");
  51. MPURLRequestParameter *anotherParameter = [[MPURLRequestParameter alloc] initWithName:@"c" andValue:@"d"] ;
  52. [parameterArray addObject:aParameter];
  53. [parameterArray addObject:anotherParameter];
  54. STAssertEqualObjects([MPURLRequestParameter parameterStringForParameters:parameterArray], @"a=b&c=d", @"Incorrectly Normalized Request Parameters, Core 9.1.1");
  55. aParameter.value = @"x!y";
  56. anotherParameter.name = @"a";
  57. anotherParameter.value = @"x y"; // the test cases online use + as space
  58. [parameterArray sortUsingSelector:@selector(compare:)];
  59. STAssertEqualObjects([MPURLRequestParameter parameterStringForParameters:parameterArray], @"a=x%20y&a=x%21y", @"Incorrectly Normalized Request Parameters, Core 9.1.1");
  60. aParameter.name = @"x!y";
  61. aParameter.value = @"a";
  62. anotherParameter.name = @"x";
  63. anotherParameter.value = @"a";
  64. [parameterArray sortUsingSelector:@selector(compare:)];
  65. STAssertEqualObjects([MPURLRequestParameter parameterStringForParameters:parameterArray], @"x=a&x%21y=a", @"Incorrectly Normalized Request Parameters, Core 9.1.1");
  66. }
  67. - (void)testParameterDictionaries {
  68. NSDictionary *parameterDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"b", @"a", @"d", @"c", nil];
  69. STAssertEqualObjects([MPURLRequestParameter parameterStringForDictionary:parameterDictionary], @"a=b&c=d", @"Incorrectly Normalized Request Parameters, Core 9.1.1");
  70. parameterDictionary = [NSDictionary dictionaryWithObjectsAndKeys:@"a", @"x!y", @"a", @"x", nil];
  71. NSArray *parameters = [MPURLRequestParameter parametersFromDictionary:parameterDictionary];
  72. parameters = [parameters sortedArrayUsingSelector:@selector(compare:)];
  73. STAssertEqualObjects([MPURLRequestParameter parameterStringForParameters:parameters], @"x=a&x%21y=a", @"Incorrectly Normalized Request Parameters, Core 9.1.1");
  74. }
  75. @end