From 80d493da05c8d461d74bfaa919ffc487be03ffe6 Mon Sep 17 00:00:00 2001 From: thomasvl Date: Fri, 16 May 2008 20:47:42 +0000 Subject: Standardize the reverse dns names for errors, notifications, etc. iPhone unit test framework didn't run tearDown on failures. Add String and Dictionary URLArgument support and tests. --- Foundation/GTMNSDictionary+URLArgumentsTest.m | 54 +++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Foundation/GTMNSDictionary+URLArgumentsTest.m (limited to 'Foundation/GTMNSDictionary+URLArgumentsTest.m') diff --git a/Foundation/GTMNSDictionary+URLArgumentsTest.m b/Foundation/GTMNSDictionary+URLArgumentsTest.m new file mode 100644 index 0000000..94d06b9 --- /dev/null +++ b/Foundation/GTMNSDictionary+URLArgumentsTest.m @@ -0,0 +1,54 @@ +// +// GTMNSDictionary+URLArgumentsTest.m +// +// Copyright 2006-2008 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); you may not +// use this file except in compliance with the License. You may obtain a copy +// of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +// License for the specific language governing permissions and limitations under +// the License. +// + +#import "GTMSenTestCase.h" +#import "GTMNSDictionary+URLArguments.h" +#import "GTMDefines.h" + +@interface GTMNSDictionary_URLArgumentsTest : SenTestCase +@end + +@implementation GTMNSDictionary_URLArgumentsTest + +- (void)testArgumentsString { + STAssertEqualObjects([[NSDictionary dictionary] gtm_httpArgumentsString], @"", + @"- empty dictionary should give an empty string"); + STAssertEqualObjects([[NSDictionary dictionaryWithObject:@"123" forKey:@"abc"] gtm_httpArgumentsString], + @"abc=123", + @"- simple one-pair dictionary should work"); + NSDictionary* arguments = [NSDictionary dictionaryWithObjectsAndKeys: + @"1+1!=3 & 2*6/3=4", @"complex", + @"specialkey", @"a+b", + nil]; + NSString* argumentString = [arguments gtm_httpArgumentsString]; + // check for individual pieces since order is not guaranteed + NSString* component1 = @"a%2Bb=specialkey"; + NSString* component2 = @"complex=1%2B1%21%3D3%20%26%202%2A6%2F3%3D4"; + STAssertNotEquals([argumentString rangeOfString:component1].location, (NSUInteger)NSNotFound, + @"- '%@' not found in '%@'", component1, argumentString); + STAssertNotEquals([argumentString rangeOfString:component2].location, (NSUInteger)NSNotFound, + @"- '%@' not found in '%@'", component2, argumentString); + STAssertNotEquals([argumentString rangeOfString:@"&"].location, (NSUInteger)NSNotFound, + @"- special characters should be escaped"); + STAssertNotEquals([argumentString characterAtIndex:0], (unichar)'&', + @"- there should be no & at the beginning of the string"); + STAssertNotEquals([argumentString characterAtIndex:([argumentString length] - 1)], (unichar)'&', + @"- there should be no & at the end of the string"); +} + +@end -- cgit v1.2.3