var OS = require("os"); var FILE = require("file"); function cleanup() { ["ToolsTestApp", "PressTestApp", "FlattenTestApp"].forEach(function(dir) { if (FILE.isDirectory(dir)) FILE.rmtree(dir); }); ["objj2objcskeletonTestFile.h", "objj2objcskeletonTestFile.m", "objj2objcskeletonTestFile.j"].forEach(function(file) { if (FILE.isFile(file)) FILE.remove(file); }); } @implementation ToolsTest : OJTestCase { } - (void)setUp { cleanup(); } - (void)testTools { var status; status = OS.system(["capp", "gen", "ToolsTestApp"].map(OS.enquote).join(" ") + " > /dev/null"); [self assert:0 equals:status message:"capp gen failed"]; status = OS.system(["press", "-f", "ToolsTestApp", "PressTestApp"].map(OS.enquote).join(" ") + " > /dev/null"); [self assert:0 equals:status message:"press failed"]; status = OS.system(["flatten", "-f", "ToolsTestApp", "FlattenTestApp"].map(OS.enquote).join(" ") + " > /dev/null"); [self assert:0 equals:status message:"flatten failed"]; status = OS.system(["objj", "ToolsTestApp/AppController.j"]); [self assert:0 equals:status 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"]; var contentHeader = FILE.read("objj2objcskeletonTestFile.h"), expectedHeaderResult = "#import \n#import \"xcc_general_include.h\"\n\n@interface AppController : NSObject\n\n@property (assign) IBOutlet NSSplitView* splitViewA;\n@property (assign) IBOutlet NSSplitView* splitViewB;\n@property (assign) IBOutlet NSSplitView* splitViewC;\n\n@end\n"; [self assert:contentHeader equals:expectedHeaderResult message:@"Header generated by objj2objcskeleton is wrong"]; var contentMFile = FILE.read("objj2objcskeletonTestFile.m"), expectedMResult = "#import \"objj2objcskeletonTestFile.h\"\n\n@implementation AppController\n@end\n"; [self assert:contentMFile equals:expectedMResult message:@"File generated by objj2objcskeleton is wrong"]; } - (void)tearDown { cleanup(); } @end