1#import "ObjectTesting.h"
2#import <Foundation/NSAutoreleasePool.h>
3#import <Foundation/NSBundle.h>
4#import <Foundation/NSFileManager.h>
5#import <Foundation/NSString.h>
6
7int main()
8{
9  NSAutoreleasePool   *arp = [NSAutoreleasePool new];
10  NSString *path;
11  NSBundle *bundle;
12  Class aClass;
13  id    anObj;
14
15  path = RETAIN([[[[[NSFileManager defaultManager] currentDirectoryPath]
16           stringByDeletingLastPathComponent]
17            stringByAppendingPathComponent:@"Resources"]
18              stringByAppendingPathComponent: @"TestBundle.bundle"]);
19
20  bundle = RETAIN([NSBundle bundleWithPath: path]);
21
22  pass([bundle isKindOfClass:[NSBundle class]],
23       "+bundleWithPath returns a bundle");
24
25  pass([[bundle bundlePath] testForString],"the bundle has a path");
26
27  pass([path testEquals: [bundle bundlePath]],
28       "bundlePath returns the correct path");
29
30  pass([[bundle resourcePath] testForString],"a bundle has a resource path");
31  pass([[bundle infoDictionary] isKindOfClass:[NSDictionary class]],
32       "a bundle has an infoDictionary");
33
34  pass([bundle load],"bundle -load returns YES");
35  aClass = NSClassFromString(@"TestBundle");
36  pass(aClass != Nil,"-load actually loaded the class");
37  anObj = [aClass new];
38  pass(anObj != nil, "we can instantiate a loaded class");
39  pass([bundle principalClass] != nil, "-principalClass is not nil");
40  pass([[[bundle principalClass] description] testEquals:@"TestBundle"],
41       "-principalClass works");
42  pass([[bundle principalClass] new] != nil, "we can instantiate -principalClass");
43  pass([[bundle classNamed:@"TestBundle"] testEquals:[bundle principalClass]],
44       "-classNamed works");
45  pass([bundle testEquals: [NSBundle bundleForClass: NSClassFromString(@"TestBundle")]],
46       "+bundleForClass works");
47  [bundle setBundleVersion:42];
48  pass([bundle bundleVersion] == 42, "we can set and get a bundle version");
49  pass([[NSBundle allBundles] containsObject:bundle],
50       "+allBundles contains a bundle after we loaded it");
51
52  RELEASE(bundle);
53  RELEASE(path);
54  [arp release]; arp = nil;
55  return 0;
56}
57