diff --git a/Tests/base/NSBundle/Resources/GNUmakefile b/Tests/base/NSBundle/Resources/GNUmakefile index 87124d5d5..83039239b 100644 --- a/Tests/base/NSBundle/Resources/GNUmakefile +++ b/Tests/base/NSBundle/Resources/GNUmakefile @@ -2,6 +2,7 @@ include $(GNUSTEP_MAKEFILES)/common.make BUNDLE_NAME = TestBundle +FRAMEWORK_NAME = TestFramework TestBundle_OBJC_FILES = TestBundle.m TestBundle_RESOURCE_FILES = NonLocalRes.txt @@ -9,6 +10,13 @@ TestBundle_LANGUAGES = English French de TestBundle_LOCALIZED_RESOURCE_FILES = TextRes.txt TestBundle_NEEDS_GUI = NO -include $(GNUSTEP_MAKEFILES)/bundle.make +TestFramework_OBJC_FILES = TestFramework.m +TestFramework_RESOURCE_FILES = NonLocalRes.txt +TestFramework_LANGUAGES = English French de +TestFramework_LOCALIZED_RESOURCE_FILES = TextRes.txt + + +include $(GNUSTEP_MAKEFILES)/bundle.make +include $(GNUSTEP_MAKEFILES)/framework.make check:: all diff --git a/Tests/base/NSBundle/Resources/TestFramework.m b/Tests/base/NSBundle/Resources/TestFramework.m new file mode 100644 index 000000000..ff6192c74 --- /dev/null +++ b/Tests/base/NSBundle/Resources/TestFramework.m @@ -0,0 +1,16 @@ +#import +#import + +@interface TestFramework : NSObject +{ + +} +-(NSString *)test; +@end + +@implementation TestFramework +-(NSString *)test +{ + return @"Something"; +} +@end diff --git a/Tests/base/NSBundle/resources2.m b/Tests/base/NSBundle/resources2.m index 1041e49ec..6bf056bdd 100644 --- a/Tests/base/NSBundle/resources2.m +++ b/Tests/base/NSBundle/resources2.m @@ -6,18 +6,19 @@ #import #import -int main() +@interface NSObject (TestMock) +- (NSString*)test; +@end + + +static void _testBundle(NSString* name, NSString* className) { - NSAutoreleasePool *arp = [NSAutoreleasePool new]; - NSString *path, *localPath; NSBundle *bundle; NSArray *arr, *carr; - + NSString *path, *localPath; path = [[[[[NSFileManager defaultManager] currentDirectoryPath] stringByStandardizingPath] stringByAppendingPathComponent: @"Resources"] - stringByAppendingPathComponent: @"TestBundle.bundle"]; - - /* --- [NSBundle -pathsForResourcesOfType:inDirectory:] --- */ + stringByAppendingPathComponent: name]; bundle = [NSBundle bundleWithPath: path]; arr = [bundle pathsForResourcesOfType: @"txt" inDirectory: nil]; PASS((arr && [arr count]), @@ -77,7 +78,23 @@ int main() @"Resources/de.lproj/TextRes.txt"]; PASS([arr containsObject: localPath], "Returned array for 'German' contains localized resource"); + Class clz = [bundle classNamed: className]; + PASS(clz, "Class can be loaded from bundle"); + id obj = [clz new]; + PASS(obj, "Objects from bundle-loaded classes can be instantiated"); + PASS_EQUAL([obj test], @"Something", "Correct method called"); + [obj release]; +} +int main() +{ + NSAutoreleasePool *arp = [NSAutoreleasePool new]; + START_SET("Bundle") + _testBundle(@"TestBundle.bundle", @"TestBundle"); + END_SET("Bundle") + START_SET("Framework") + _testBundle(@"TestFramework.framework", @"TestFramework"); + END_SET("Framework"); [arp release]; arp = nil; return 0; }