diff --git a/Tests/Tools/ToolsTest.j b/Tests/Tools/ToolsTest.j index bf541005a..a15d1df01 100644 --- a/Tests/Tools/ToolsTest.j +++ b/Tests/Tools/ToolsTest.j @@ -7,7 +7,7 @@ function cleanup() { FILE.rmtree(dir); }); - ["objj2objcskeletonTestFile.h", "objj2objcskeletonTestFile.m", "objj2objcskeletonTestFile.j"].forEach(function(file) { + ["objj2objcskeletonTestFile.h", "objj2objcskeletonTestFile.m", "objj2objcskeletonTestFile.j", "objjWarningTestFile.j", "objjErrorTestFile.j"].forEach(function(file) { if (FILE.isFile(file)) FILE.remove(file); }); @@ -18,6 +18,14 @@ function cleanup() { } - (void)setUp +{ + cleanup(); + FILE.write("objj2objcskeletonTestFile.j", "@import \n@import \n\n\n@implementation AppController : CPObject\n{\n @outlet CPSplitView splitViewA;\n @outlet CPSplitView splitViewB;\n @outlet CPSplitView splitViewC;\n}\n\n@end"); + FILE.write("objjWarningTestFile.j", "@import @implementation AppController : CPObject{CPWindow theWindow;}@end"); + FILE.write("objjErrorTestFile.j", "@implementation AppController : CPObject{}@end"); +} + +- (void)tearDown { cleanup(); } @@ -38,14 +46,25 @@ function cleanup() { status = OS.system(["objj", "ToolsTestApp/AppController.j"]); [self assert:0 equals:status message:"objj failed"]; + status = OS.system(["objj", "--xml-output-format", "ToolsTestApp/AppController.j"]); + [self assert:0 equals:status message:"objj failed"]; + + var p = OS.popen(["objj", "--xml-output-format", "objjErrorTestFile.j"]); + [self assert:1 equals:p.wait() message:"objj failed"]; + [self assert:"\nline1path/Users/Dogild/Project/cappuccino/objjErrorTestFile.jmessageCan't find superclass CPObject\n" equals:p.stdout.read() message:"objj failed"]; + + var p = OS.popen(["objj", "--xml-output-format", "objjWarningTestFile.j"]); + [self assert:0 equals:p.wait() message:"objj failed"]; + [self assert:"\nline1path/Users/Dogild/Project/cappuccino/objjWarningTestFile.jmessage\n@import <Foundation/Foundation.j>@implementation AppController : CPObject{CPWindow theWindow;}@end\ +\n ^\ +\nWARNING line 1 in file:/Users/Dogild/Project/cappuccino/objjWarningTestFile.j: Unknown type 'CPWindow' for ivar 'theWindow'\n" equals:p.stdout.read() message:"objj failed"]; + status = OS.system(["objj", "-m", "ToolsTestApp/AppController.j", "ToolsTestApp/AppController.j"]); [self assert:0 equals:status message:"objj failed with several files"]; status = OS.system(["objj", "-I", "ToolsTestApp/Frameworks", "ToolsTestApp/AppController.j"]); [self assert:0 equals:status message:"objj failed with options -I"]; - FILE.write("objj2objcskeletonTestFile.j", "@import \n@import \n\n\n@implementation AppController : CPObject\n{\n @outlet CPSplitView splitViewA;\n @outlet CPSplitView splitViewB;\n @outlet CPSplitView splitViewC;\n}\n\n@end"); - status = OS.system(["objj2objcskeleton", "objj2objcskeletonTestFile.j", "."]); [self assert:0 equals:status message:"objj2objcskeleton failed"]; @@ -60,9 +79,4 @@ function cleanup() { [self assert:contentMFile equals:expectedMResult message:@"File generated by objj2objcskeleton is wrong"]; } -- (void)tearDown -{ - cleanup(); -} - @end