mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-01 16:33:35 +00:00
Merge pull request #1476 from cacaodev/cappuccino
--- In nib2cib, this typo was preventing from decoding base64 data included in nib files.
This commit is contained in:
@@ -603,7 +603,8 @@ CFPropertyList.propertyListFromXML = function(/*String | XMLNode*/ aStringOrXMLN
|
||||
break;
|
||||
|
||||
case PLIST_DATA: object = new CFMutableData();
|
||||
object.bytes = FIRST_CHILD(XMLNode) ? CFData.decodeBase64ToArray(TEXT_CONTENT(XMLNode), YES) : [];
|
||||
var data_bytes = FIRST_CHILD(XMLNode) ? CFData.decodeBase64ToArray(TEXT_CONTENT(XMLNode), YES) : [];
|
||||
object.setBytes(data_bytes);
|
||||
break;
|
||||
|
||||
default: throw new Error("*** " + NODE_NAME(XMLNode) + " tag not recognized in Plist.");
|
||||
|
||||
@@ -0,0 +1,97 @@
|
||||
/*
|
||||
* AppController.j
|
||||
* CPPropertyListSerializationTest
|
||||
*
|
||||
* Created by You on March 9, 2012.
|
||||
* Copyright 2012, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
@import <Foundation/CPObject.j>
|
||||
|
||||
var originalBase64Data = "YnBsaXN0MDDUAQIDBAUG6utYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QMwcIHyMkKi4yNj5MUF5fYGFzdHx9gIqLjJGUmZqdoqisrbGytr3AwcPK09yI3d7f4OHk51UkbnVsbNsJCgsMDQ4PEBESExQVFhcYGRobHB0dXxAQTlNWaXNpYmxlV2luZG93c11OU09iamVjdHNLZXlzVk5TUm9vdFxOU09pZHNWYWx1ZXNWJGNsYXNzWk5TT2lkc0tleXNdTlNDb25uZWN0aW9uc18QD05TT2JqZWN0c1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNfEBdOU0FjY2Vzc2liaWxpdHlPaWRzS2V5c18QGU5TQWNjZXNzaWJpbGl0eU9pZHNWYWx1ZXOABYAjgAKAKYAygCiAB4AngDCAMYAx0g0gISJbTlNDbGFzc05hbWWABIADWE5TT2JqZWN00iUmJyhaJGNsYXNzbmFtZVgkY2xhc3Nlc15OU0N1c3RvbU9iamVjdKInKVhOU09iamVjdNINKywtWk5TLm9iamVjdHOABqDSJSYvMFxOU011dGFibGVTZXSjLzEpVU5TU2V00g0rMzSAHqE1gAjUDTc4OTo7PD1XTlNMYWJlbF1OU0Rlc3RpbmF0aW9uWE5TU291cmNlgCKAIYALgAnXPw1AQUJDRDxGR0hJSktdTlNOZXh0S2V5Vmlld1hOU3ZGbGFnc18QD05TTmV4dFJlc3BvbmRlcl8QFE5TUmV1c2VJZGVudGlmaWVyS2V5W05TRnJhbWVTaXplWk5TU3Vidmlld3OAC4AgEQESgACADYAfgArSDSszToAeoTyAC9lRUlNADUFCQ1RVVj1YWT1JXF1ZTlNFbmFibGVkVk5TQ2VsbFtOU1N1cGVydmlld18QGU5TQW50aUNvbXByZXNzaW9uUHJpb3JpdHkJgA+ACREBCoAdgAmADYAMgA5ZezExNiwgMTd9U05pYlp7MjUwLCA3NTB92WJjZGVmZ2gNaWprbEk8b3BxcltOU0NlbGxGbGFnc1xOU0NlbGxGbGFnczJaTlNDb250ZW50c18QEE5TQ2VsbElkZW50aWZpZXJdTlNDb250cm9sVmlld1tOU1RleHRDb2xvcllOU1N1cHBvcnRfEBFOU0JhY2tncm91bmRDb2xvchIEAf5AEhBACACAEIANgAuAGYARgByAFFdNeSBDRUxM1A11dnd4eXp7Vk5TTmFtZVZOU1NpemVYTlNmRmxhZ3OAE4ASI0AqAAAAAAAAEQQUXEx1Y2lkYUdyYW5kZdIlJn5/Vk5TRm9udKJ+KdWBDYKDhIWGh4iJXU5TQ2F0YWxvZ05hbWVbTlNDb2xvck5hbWVcTlNDb2xvclNwYWNlV05TQ29sb3KAFYAYgBYQBoAXVlN5c3RlbVxjb250cm9sQ29sb3LTDYONho+QV05TV2hpdGWAGBADTTAuNjY2NjY2NjY2NwDSJSaSk1dOU0NvbG9yopIp1YENgoOEhYaXiJiAFYAYgBqAG18QEGNvbnRyb2xUZXh0Q29sb3LTDYONho+cgBhCMADSJSaen18QD05TVGV4dEZpZWxkQ2VsbKSeoKEpXE5TQWN0aW9uQ2VsbFZOU0NlbGzSJSajpFtOU1RleHRGaWVsZKWjpaanKVlOU0NvbnRyb2xWTlNWaWV3W05TUmVzcG9uZGVy0iUmqapeTlNNdXRhYmxlQXJyYXmjqaspV05TQXJyYXlZezExNiwgMTd90iUmrq9fEA9OU1RhYmxlQ2VsbFZpZXeksKanKV8QD05TVGFibGVDZWxsVmlld1l0ZXh0RmllbGTSJSaztF8QFE5TTmliT3V0bGV0Q29ubmVjdG9yo7O1KV5OU05pYkNvbm5lY3RvctINK7e4gCakPTxWvIAJgAuAD4Ak0g0gIb+ABIAlXU5TQXBwbGljYXRpb27SJSarwqKrKdINK7fFgCakFj08FoACgAmAC4AC0g0rt8yAJqYWPTxWvDWAAoAJgAuAD4AkgAjSDSu31YAmptbX2Nna24AqgCuALIAtgC6ALxAFEAcQCBAJEArSDSsz44AeoNINK7fmgCag0iUm6OleTlNJQk9iamVjdERhdGGi6ClfEA9OU0tleWVkQXJjaGl2ZXLR7O1dSUIub2JqZWN0ZGF0YYABAAgAEQAaACMALQAyADcAbQBzAIoAnQCrALIAvwDGANEA3wDxAQ0BJwFDAUUBRwFJAUsBTQFPAVEBUwFVAVcBWQFeAWoBbAFuAXcBfAGHAZABnwGiAasBsAG7Ab0BvgHDAdAB1AHaAd8B4QHjAeUB7gH2AgQCDQIPAhECEwIVAiQCMgI7Ak0CZAJwAnsCfQJ/AoIChAKGAogCigKPApECkwKVAqgCsgK5AsUC4QLiAuQC5gLpAusC7QLvAvEC8wL9AwEDDAMfAysDOANDA1YDZANwA3oDjgOTA5gDmgOcA54DoAOiA6QDpgOuA7cDvgPFA84D0APSA9sD3gPrA/AD9wP6BAUEEwQfBCwENAQ2BDgEOgQ8BD4ERQRSBFkEYQRjBGUEcwR4BIAEgwSOBJAEkgSUBJYEqQSwBLIEtQS6BMwE0QTeBOUE6gT2BPwFBgUNBRkFHgUtBTEFOQVDBUgFWgVfBXEFewWABZcFmwWqBa8FsQW2BbgFugW8Bb4FwwXFBccF1QXaBd0F4gXkBekF6wXtBe8F8QX2BfgF/wYBBgMGBQYHBgkGCwYQBhIGGQYbBh0GHwYhBiMGJQYnBikGKwYtBi8GNAY2BjcGPAY+Bj8GRAZTBlYGaAZrBnkAAAAAAAACAQAAAAAAAADuAAAAAAAAAAAAAAAAAAAGew==";
|
||||
|
||||
@implementation AppController : CPObject
|
||||
{
|
||||
CPDictionary deserializedData;
|
||||
}
|
||||
|
||||
- (void)applicationDidFinishLaunching:(CPNotification)aNotification
|
||||
{
|
||||
var theWindow = [[CPWindow alloc] initWithContentRect:CGRectMakeZero() styleMask:CPBorderlessBridgeWindowMask],
|
||||
contentView = [theWindow contentView];
|
||||
|
||||
[theWindow orderFront:self];
|
||||
|
||||
var path = [[CPBundle mainBundle] pathForResource:@"PropertyList.plist"],
|
||||
request = [CPURLRequest requestWithURL:path],
|
||||
connection = [CPURLConnection connectionWithRequest:request delegate:self];
|
||||
|
||||
// Uncomment the following line to turn on the standard menu bar.
|
||||
//[CPMenu setMenuBarVisible:YES];
|
||||
}
|
||||
|
||||
- (void)connection:(CPURLConnection)connection didReceiveData:(CPString)dataString
|
||||
{
|
||||
if (!dataString)
|
||||
return;
|
||||
|
||||
var receivedData = [[CPData alloc] initWithRawString:dataString];
|
||||
|
||||
deserializedData = [CPPropertyListSerialization propertyListFromData:receivedData format:CPPropertyListXMLFormat_v1_0];
|
||||
|
||||
document.write("This test checks the class and value of objects deserialized from a CPPropertyListXMLFormat_v1_0 file</br></br>");
|
||||
|
||||
[self testObjectForKey:@"Number" isKindOfClass:[CPNumber class]];
|
||||
[self testObjectForKey:@"Number" isEqual:12];
|
||||
|
||||
[self testObjectForKey:@"Bool" isEqual:YES];
|
||||
|
||||
[self testObjectForKey:@"String" isKindOfClass:[CPString class]];
|
||||
[self testObjectForKey:@"String" isEqual:@"String"];
|
||||
|
||||
[self testObjectForKey:@"Data" isKindOfClass:[CPData class]];
|
||||
[self testObjectForKey:@"Dict" isKindOfClass:[CPDictionary class]];
|
||||
[self testObjectForKey:@"Dict.Number" isKindOfClass:[CPNumber class]];
|
||||
[self testObjectForKey:@"Dict.Data" isKindOfClass:[CPData class]];
|
||||
[self testObjectForKey:@"Dict.Bool" isEqual:YES];
|
||||
|
||||
[self testObjectForKey:@"Array" isKindOfClass:[CPArray class]];
|
||||
|
||||
// CPData -isEqual: is not implemented. Here we convert the CPData we get from CPPropertyListSerialization to base64 (using the CFData API) and compare with the original.
|
||||
|
||||
var dataObject = [deserializedData objectForKey:@"Data"];
|
||||
var base64 = CFData.encodeBase64Array(dataObject.bytes());
|
||||
var isvalue = (base64 == originalBase64Data);
|
||||
|
||||
if (isvalue)
|
||||
document.write(@"Key Data base64: TEST PASSED");
|
||||
else
|
||||
document.write(@"Key Data base64 should be :" + originalBase64Data + " was: " + base64);
|
||||
}
|
||||
|
||||
- (void)testObjectForKey:(CPString)aKey isKindOfClass:(Class)aClass
|
||||
{
|
||||
var value = [deserializedData valueForKeyPath:aKey],
|
||||
result;
|
||||
|
||||
if ([[value class] isKindOfClass:aClass])
|
||||
result = @"Key " + aKey + " class: TEST PASSED </br>";
|
||||
else
|
||||
result = @"Key " + aKey + "should be of class:" + aClass + " was: " + [value class] + "</br>";
|
||||
|
||||
document.write(result);
|
||||
}
|
||||
|
||||
- (void)testObjectForKey:(CPString)aKey isEqual:(id)aValue
|
||||
{
|
||||
var value = [deserializedData valueForKeyPath:aKey];
|
||||
|
||||
if (value == aValue || [value isEqual:aValue])
|
||||
result = @"Key " + aKey + " value: TEST PASSED </br>";
|
||||
else
|
||||
result = @"Key " + aKey + "should be :" + aValue + " was: " + value + "</br>";
|
||||
|
||||
document.write(result);
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CPApplicationDelegateClass</key>
|
||||
<string>AppController</string>
|
||||
<key>CPBundleName</key>
|
||||
<string>CPPropertyListSerializationTest</string>
|
||||
<key>CPPrincipalClass</key>
|
||||
<string>CPApplication</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,93 @@
|
||||
/*
|
||||
* Jakefile
|
||||
* CPPropertyListSerializationTest
|
||||
*
|
||||
* Created by You on March 9, 2012.
|
||||
* Copyright 2012, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
var ENV = require("system").env,
|
||||
FILE = require("file"),
|
||||
JAKE = require("jake"),
|
||||
task = JAKE.task,
|
||||
FileList = JAKE.FileList,
|
||||
app = require("cappuccino/jake").app,
|
||||
configuration = ENV["CONFIG"] || ENV["CONFIGURATION"] || ENV["c"] || "Debug",
|
||||
OS = require("os");
|
||||
|
||||
app ("CPPropertyListSerializationTest", function(task)
|
||||
{
|
||||
task.setBuildIntermediatesPath(FILE.join("Build", "CPPropertyListSerializationTest.build", configuration));
|
||||
task.setBuildPath(FILE.join("Build", configuration));
|
||||
|
||||
task.setProductName("CPPropertyListSerializationTest");
|
||||
task.setIdentifier("com.yourcompany.CPPropertyListSerializationTest");
|
||||
task.setVersion("1.0");
|
||||
task.setAuthor("Your Company");
|
||||
task.setEmail("feedback @nospam@ yourcompany.com");
|
||||
task.setSummary("CPPropertyListSerializationTest");
|
||||
task.setSources((new FileList("**/*.j")).exclude(FILE.join("Build", "**")));
|
||||
task.setResources(new FileList("Resources/**"));
|
||||
task.setIndexFilePath("index.html");
|
||||
task.setInfoPlistPath("Info.plist");
|
||||
|
||||
if (configuration === "Debug")
|
||||
task.setCompilerFlags("-DDEBUG -g");
|
||||
else
|
||||
task.setCompilerFlags("-O");
|
||||
});
|
||||
|
||||
task ("default", ["CPPropertyListSerializationTest"], function()
|
||||
{
|
||||
printResults(configuration);
|
||||
});
|
||||
|
||||
task ("build", ["default"]);
|
||||
|
||||
task ("debug", function()
|
||||
{
|
||||
ENV["CONFIGURATION"] = "Debug";
|
||||
JAKE.subjake(["."], "build", ENV);
|
||||
});
|
||||
|
||||
task ("release", function()
|
||||
{
|
||||
ENV["CONFIGURATION"] = "Release";
|
||||
JAKE.subjake(["."], "build", ENV);
|
||||
});
|
||||
|
||||
task ("run", ["debug"], function()
|
||||
{
|
||||
OS.system(["open", FILE.join("Build", "Debug", "CPPropertyListSerializationTest", "index.html")]);
|
||||
});
|
||||
|
||||
task ("run-release", ["release"], function()
|
||||
{
|
||||
OS.system(["open", FILE.join("Build", "Release", "CPPropertyListSerializationTest", "index.html")]);
|
||||
});
|
||||
|
||||
task ("deploy", ["release"], function()
|
||||
{
|
||||
FILE.mkdirs(FILE.join("Build", "Deployment", "CPPropertyListSerializationTest"));
|
||||
OS.system(["press", "-f", FILE.join("Build", "Release", "CPPropertyListSerializationTest"), FILE.join("Build", "Deployment", "CPPropertyListSerializationTest")]);
|
||||
printResults("Deployment")
|
||||
});
|
||||
|
||||
task ("desktop", ["release"], function()
|
||||
{
|
||||
FILE.mkdirs(FILE.join("Build", "Desktop", "CPPropertyListSerializationTest"));
|
||||
require("cappuccino/nativehost").buildNativeHost(FILE.join("Build", "Release", "CPPropertyListSerializationTest"), FILE.join("Build", "Desktop", "CPPropertyListSerializationTest", "CPPropertyListSerializationTest.app"));
|
||||
printResults("Desktop")
|
||||
});
|
||||
|
||||
task ("run-desktop", ["desktop"], function()
|
||||
{
|
||||
OS.system([FILE.join("Build", "Desktop", "CPPropertyListSerializationTest", "CPPropertyListSerializationTest.app", "Contents", "MacOS", "NativeHost"), "-i"]);
|
||||
});
|
||||
|
||||
function printResults(configuration)
|
||||
{
|
||||
print("----------------------------");
|
||||
print(configuration+" app built at path: "+FILE.join("Build", configuration, "CPPropertyListSerializationTest"));
|
||||
print("----------------------------");
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>String</key>
|
||||
<string>String</string>
|
||||
<key>Number</key>
|
||||
<integer>12</integer>
|
||||
<key>Data</key>
|
||||
<data>YnBsaXN0MDDUAQIDBAUG6utYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QMwcIHyMkKi4yNj5MUF5fYGFzdHx9gIqLjJGUmZqdoqisrbGytr3AwcPK09yI3d7f4OHk51UkbnVsbNsJCgsMDQ4PEBESExQVFhcYGRobHB0dXxAQTlNWaXNpYmxlV2luZG93c11OU09iamVjdHNLZXlzVk5TUm9vdFxOU09pZHNWYWx1ZXNWJGNsYXNzWk5TT2lkc0tleXNdTlNDb25uZWN0aW9uc18QD05TT2JqZWN0c1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNfEBdOU0FjY2Vzc2liaWxpdHlPaWRzS2V5c18QGU5TQWNjZXNzaWJpbGl0eU9pZHNWYWx1ZXOABYAjgAKAKYAygCiAB4AngDCAMYAx0g0gISJbTlNDbGFzc05hbWWABIADWE5TT2JqZWN00iUmJyhaJGNsYXNzbmFtZVgkY2xhc3Nlc15OU0N1c3RvbU9iamVjdKInKVhOU09iamVjdNINKywtWk5TLm9iamVjdHOABqDSJSYvMFxOU011dGFibGVTZXSjLzEpVU5TU2V00g0rMzSAHqE1gAjUDTc4OTo7PD1XTlNMYWJlbF1OU0Rlc3RpbmF0aW9uWE5TU291cmNlgCKAIYALgAnXPw1AQUJDRDxGR0hJSktdTlNOZXh0S2V5Vmlld1hOU3ZGbGFnc18QD05TTmV4dFJlc3BvbmRlcl8QFE5TUmV1c2VJZGVudGlmaWVyS2V5W05TRnJhbWVTaXplWk5TU3Vidmlld3OAC4AgEQESgACADYAfgArSDSszToAeoTyAC9lRUlNADUFCQ1RVVj1YWT1JXF1ZTlNFbmFibGVkVk5TQ2VsbFtOU1N1cGVydmlld18QGU5TQW50aUNvbXByZXNzaW9uUHJpb3JpdHkJgA+ACREBCoAdgAmADYAMgA5ZezExNiwgMTd9U05pYlp7MjUwLCA3NTB92WJjZGVmZ2gNaWprbEk8b3BxcltOU0NlbGxGbGFnc1xOU0NlbGxGbGFnczJaTlNDb250ZW50c18QEE5TQ2VsbElkZW50aWZpZXJdTlNDb250cm9sVmlld1tOU1RleHRDb2xvcllOU1N1cHBvcnRfEBFOU0JhY2tncm91bmRDb2xvchIEAf5AEhBACACAEIANgAuAGYARgByAFFdNeSBDRUxM1A11dnd4eXp7Vk5TTmFtZVZOU1NpemVYTlNmRmxhZ3OAE4ASI0AqAAAAAAAAEQQUXEx1Y2lkYUdyYW5kZdIlJn5/Vk5TRm9udKJ+KdWBDYKDhIWGh4iJXU5TQ2F0YWxvZ05hbWVbTlNDb2xvck5hbWVcTlNDb2xvclNwYWNlV05TQ29sb3KAFYAYgBYQBoAXVlN5c3RlbVxjb250cm9sQ29sb3LTDYONho+QV05TV2hpdGWAGBADTTAuNjY2NjY2NjY2NwDSJSaSk1dOU0NvbG9yopIp1YENgoOEhYaXiJiAFYAYgBqAG18QEGNvbnRyb2xUZXh0Q29sb3LTDYONho+cgBhCMADSJSaen18QD05TVGV4dEZpZWxkQ2VsbKSeoKEpXE5TQWN0aW9uQ2VsbFZOU0NlbGzSJSajpFtOU1RleHRGaWVsZKWjpaanKVlOU0NvbnRyb2xWTlNWaWV3W05TUmVzcG9uZGVy0iUmqapeTlNNdXRhYmxlQXJyYXmjqaspV05TQXJyYXlZezExNiwgMTd90iUmrq9fEA9OU1RhYmxlQ2VsbFZpZXeksKanKV8QD05TVGFibGVDZWxsVmlld1l0ZXh0RmllbGTSJSaztF8QFE5TTmliT3V0bGV0Q29ubmVjdG9yo7O1KV5OU05pYkNvbm5lY3RvctINK7e4gCakPTxWvIAJgAuAD4Ak0g0gIb+ABIAlXU5TQXBwbGljYXRpb27SJSarwqKrKdINK7fFgCakFj08FoACgAmAC4AC0g0rt8yAJqYWPTxWvDWAAoAJgAuAD4AkgAjSDSu31YAmptbX2Nna24AqgCuALIAtgC6ALxAFEAcQCBAJEArSDSsz44AeoNINK7fmgCag0iUm6OleTlNJQk9iamVjdERhdGGi6ClfEA9OU0tleWVkQXJjaGl2ZXLR7O1dSUIub2JqZWN0ZGF0YYABAAgAEQAaACMALQAyADcAbQBzAIoAnQCrALIAvwDGANEA3wDxAQ0BJwFDAUUBRwFJAUsBTQFPAVEBUwFVAVcBWQFeAWoBbAFuAXcBfAGHAZABnwGiAasBsAG7Ab0BvgHDAdAB1AHaAd8B4QHjAeUB7gH2AgQCDQIPAhECEwIVAiQCMgI7Ak0CZAJwAnsCfQJ/AoIChAKGAogCigKPApECkwKVAqgCsgK5AsUC4QLiAuQC5gLpAusC7QLvAvEC8wL9AwEDDAMfAysDOANDA1YDZANwA3oDjgOTA5gDmgOcA54DoAOiA6QDpgOuA7cDvgPFA84D0APSA9sD3gPrA/AD9wP6BAUEEwQfBCwENAQ2BDgEOgQ8BD4ERQRSBFkEYQRjBGUEcwR4BIAEgwSOBJAEkgSUBJYEqQSwBLIEtQS6BMwE0QTeBOUE6gT2BPwFBgUNBRkFHgUtBTEFOQVDBUgFWgVfBXEFewWABZcFmwWqBa8FsQW2BbgFugW8Bb4FwwXFBccF1QXaBd0F4gXkBekF6wXtBe8F8QX2BfgF/wYBBgMGBQYHBgkGCwYQBhIGGQYbBh0GHwYhBiMGJQYnBikGKwYtBi8GNAY2BjcGPAY+Bj8GRAZTBlYGaAZrBnkAAAAAAAACAQAAAAAAAADuAAAAAAAAAAAAAAAAAAAGew==</data>
|
||||
<key>Bool</key>
|
||||
<true/>
|
||||
<key>Dict</key>
|
||||
<dict>
|
||||
<key>Bool</key>
|
||||
<true/>
|
||||
<key>Data</key>
|
||||
<data>YnBsaXN0MDDUAQIDBAUG6utYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QMwcIHyMkKi4yNj5MUF5fYGFzdHx9gIqLjJGUmZqdoqisrbGytr3AwcPK09yI3d7f4OHk51UkbnVsbNsJCgsMDQ4PEBESExQVFhcYGRobHB0dXxAQTlNWaXNpYmxlV2luZG93c11OU09iamVjdHNLZXlzVk5TUm9vdFxOU09pZHNWYWx1ZXNWJGNsYXNzWk5TT2lkc0tleXNdTlNDb25uZWN0aW9uc18QD05TT2JqZWN0c1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNfEBdOU0FjY2Vzc2liaWxpdHlPaWRzS2V5c18QGU5TQWNjZXNzaWJpbGl0eU9pZHNWYWx1ZXOABYAjgAKAKYAygCiAB4AngDCAMYAx0g0gISJbTlNDbGFzc05hbWWABIADWE5TT2JqZWN00iUmJyhaJGNsYXNzbmFtZVgkY2xhc3Nlc15OU0N1c3RvbU9iamVjdKInKVhOU09iamVjdNINKywtWk5TLm9iamVjdHOABqDSJSYvMFxOU011dGFibGVTZXSjLzEpVU5TU2V00g0rMzSAHqE1gAjUDTc4OTo7PD1XTlNMYWJlbF1OU0Rlc3RpbmF0aW9uWE5TU291cmNlgCKAIYALgAnXPw1AQUJDRDxGR0hJSktdTlNOZXh0S2V5Vmlld1hOU3ZGbGFnc18QD05TTmV4dFJlc3BvbmRlcl8QFE5TUmV1c2VJZGVudGlmaWVyS2V5W05TRnJhbWVTaXplWk5TU3Vidmlld3OAC4AgEQESgACADYAfgArSDSszToAeoTyAC9lRUlNADUFCQ1RVVj1YWT1JXF1ZTlNFbmFibGVkVk5TQ2VsbFtOU1N1cGVydmlld18QGU5TQW50aUNvbXByZXNzaW9uUHJpb3JpdHkJgA+ACREBCoAdgAmADYAMgA5ZezExNiwgMTd9U05pYlp7MjUwLCA3NTB92WJjZGVmZ2gNaWprbEk8b3BxcltOU0NlbGxGbGFnc1xOU0NlbGxGbGFnczJaTlNDb250ZW50c18QEE5TQ2VsbElkZW50aWZpZXJdTlNDb250cm9sVmlld1tOU1RleHRDb2xvcllOU1N1cHBvcnRfEBFOU0JhY2tncm91bmRDb2xvchIEAf5AEhBACACAEIANgAuAGYARgByAFFdNeSBDRUxM1A11dnd4eXp7Vk5TTmFtZVZOU1NpemVYTlNmRmxhZ3OAE4ASI0AqAAAAAAAAEQQUXEx1Y2lkYUdyYW5kZdIlJn5/Vk5TRm9udKJ+KdWBDYKDhIWGh4iJXU5TQ2F0YWxvZ05hbWVbTlNDb2xvck5hbWVcTlNDb2xvclNwYWNlV05TQ29sb3KAFYAYgBYQBoAXVlN5c3RlbVxjb250cm9sQ29sb3LTDYONho+QV05TV2hpdGWAGBADTTAuNjY2NjY2NjY2NwDSJSaSk1dOU0NvbG9yopIp1YENgoOEhYaXiJiAFYAYgBqAG18QEGNvbnRyb2xUZXh0Q29sb3LTDYONho+cgBhCMADSJSaen18QD05TVGV4dEZpZWxkQ2VsbKSeoKEpXE5TQWN0aW9uQ2VsbFZOU0NlbGzSJSajpFtOU1RleHRGaWVsZKWjpaanKVlOU0NvbnRyb2xWTlNWaWV3W05TUmVzcG9uZGVy0iUmqapeTlNNdXRhYmxlQXJyYXmjqaspV05TQXJyYXlZezExNiwgMTd90iUmrq9fEA9OU1RhYmxlQ2VsbFZpZXeksKanKV8QD05TVGFibGVDZWxsVmlld1l0ZXh0RmllbGTSJSaztF8QFE5TTmliT3V0bGV0Q29ubmVjdG9yo7O1KV5OU05pYkNvbm5lY3RvctINK7e4gCakPTxWvIAJgAuAD4Ak0g0gIb+ABIAlXU5TQXBwbGljYXRpb27SJSarwqKrKdINK7fFgCakFj08FoACgAmAC4AC0g0rt8yAJqYWPTxWvDWAAoAJgAuAD4AkgAjSDSu31YAmptbX2Nna24AqgCuALIAtgC6ALxAFEAcQCBAJEArSDSsz44AeoNINK7fmgCag0iUm6OleTlNJQk9iamVjdERhdGGi6ClfEA9OU0tleWVkQXJjaGl2ZXLR7O1dSUIub2JqZWN0ZGF0YYABAAgAEQAaACMALQAyADcAbQBzAIoAnQCrALIAvwDGANEA3wDxAQ0BJwFDAUUBRwFJAUsBTQFPAVEBUwFVAVcBWQFeAWoBbAFuAXcBfAGHAZABnwGiAasBsAG7Ab0BvgHDAdAB1AHaAd8B4QHjAeUB7gH2AgQCDQIPAhECEwIVAiQCMgI7Ak0CZAJwAnsCfQJ/AoIChAKGAogCigKPApECkwKVAqgCsgK5AsUC4QLiAuQC5gLpAusC7QLvAvEC8wL9AwEDDAMfAysDOANDA1YDZANwA3oDjgOTA5gDmgOcA54DoAOiA6QDpgOuA7cDvgPFA84D0APSA9sD3gPrA/AD9wP6BAUEEwQfBCwENAQ2BDgEOgQ8BD4ERQRSBFkEYQRjBGUEcwR4BIAEgwSOBJAEkgSUBJYEqQSwBLIEtQS6BMwE0QTeBOUE6gT2BPwFBgUNBRkFHgUtBTEFOQVDBUgFWgVfBXEFewWABZcFmwWqBa8FsQW2BbgFugW8Bb4FwwXFBccF1QXaBd0F4gXkBekF6wXtBe8F8QX2BfgF/wYBBgMGBQYHBgkGCwYQBhIGGQYbBh0GHwYhBiMGJQYnBikGKwYtBi8GNAY2BjcGPAY+Bj8GRAZTBlYGaAZrBnkAAAAAAAACAQAAAAAAAADuAAAAAAAAAAAAAAAAAAAGew==</data>
|
||||
<key>Number</key>
|
||||
<integer>12</integer>
|
||||
<key>String</key>
|
||||
<string>String</string>
|
||||
</dict>
|
||||
<key>Array</key>
|
||||
<array>
|
||||
<true/>
|
||||
<data>YnBsaXN0MDDUAQIDBAUG6utYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3ASAAGGoK8QMwcIHyMkKi4yNj5MUF5fYGFzdHx9gIqLjJGUmZqdoqisrbGytr3AwcPK09yI3d7f4OHk51UkbnVsbNsJCgsMDQ4PEBESExQVFhcYGRobHB0dXxAQTlNWaXNpYmxlV2luZG93c11OU09iamVjdHNLZXlzVk5TUm9vdFxOU09pZHNWYWx1ZXNWJGNsYXNzWk5TT2lkc0tleXNdTlNDb25uZWN0aW9uc18QD05TT2JqZWN0c1ZhbHVlc18QGU5TQWNjZXNzaWJpbGl0eUNvbm5lY3RvcnNfEBdOU0FjY2Vzc2liaWxpdHlPaWRzS2V5c18QGU5TQWNjZXNzaWJpbGl0eU9pZHNWYWx1ZXOABYAjgAKAKYAygCiAB4AngDCAMYAx0g0gISJbTlNDbGFzc05hbWWABIADWE5TT2JqZWN00iUmJyhaJGNsYXNzbmFtZVgkY2xhc3Nlc15OU0N1c3RvbU9iamVjdKInKVhOU09iamVjdNINKywtWk5TLm9iamVjdHOABqDSJSYvMFxOU011dGFibGVTZXSjLzEpVU5TU2V00g0rMzSAHqE1gAjUDTc4OTo7PD1XTlNMYWJlbF1OU0Rlc3RpbmF0aW9uWE5TU291cmNlgCKAIYALgAnXPw1AQUJDRDxGR0hJSktdTlNOZXh0S2V5Vmlld1hOU3ZGbGFnc18QD05TTmV4dFJlc3BvbmRlcl8QFE5TUmV1c2VJZGVudGlmaWVyS2V5W05TRnJhbWVTaXplWk5TU3Vidmlld3OAC4AgEQESgACADYAfgArSDSszToAeoTyAC9lRUlNADUFCQ1RVVj1YWT1JXF1ZTlNFbmFibGVkVk5TQ2VsbFtOU1N1cGVydmlld18QGU5TQW50aUNvbXByZXNzaW9uUHJpb3JpdHkJgA+ACREBCoAdgAmADYAMgA5ZezExNiwgMTd9U05pYlp7MjUwLCA3NTB92WJjZGVmZ2gNaWprbEk8b3BxcltOU0NlbGxGbGFnc1xOU0NlbGxGbGFnczJaTlNDb250ZW50c18QEE5TQ2VsbElkZW50aWZpZXJdTlNDb250cm9sVmlld1tOU1RleHRDb2xvcllOU1N1cHBvcnRfEBFOU0JhY2tncm91bmRDb2xvchIEAf5AEhBACACAEIANgAuAGYARgByAFFdNeSBDRUxM1A11dnd4eXp7Vk5TTmFtZVZOU1NpemVYTlNmRmxhZ3OAE4ASI0AqAAAAAAAAEQQUXEx1Y2lkYUdyYW5kZdIlJn5/Vk5TRm9udKJ+KdWBDYKDhIWGh4iJXU5TQ2F0YWxvZ05hbWVbTlNDb2xvck5hbWVcTlNDb2xvclNwYWNlV05TQ29sb3KAFYAYgBYQBoAXVlN5c3RlbVxjb250cm9sQ29sb3LTDYONho+QV05TV2hpdGWAGBADTTAuNjY2NjY2NjY2NwDSJSaSk1dOU0NvbG9yopIp1YENgoOEhYaXiJiAFYAYgBqAG18QEGNvbnRyb2xUZXh0Q29sb3LTDYONho+cgBhCMADSJSaen18QD05TVGV4dEZpZWxkQ2VsbKSeoKEpXE5TQWN0aW9uQ2VsbFZOU0NlbGzSJSajpFtOU1RleHRGaWVsZKWjpaanKVlOU0NvbnRyb2xWTlNWaWV3W05TUmVzcG9uZGVy0iUmqapeTlNNdXRhYmxlQXJyYXmjqaspV05TQXJyYXlZezExNiwgMTd90iUmrq9fEA9OU1RhYmxlQ2VsbFZpZXeksKanKV8QD05TVGFibGVDZWxsVmlld1l0ZXh0RmllbGTSJSaztF8QFE5TTmliT3V0bGV0Q29ubmVjdG9yo7O1KV5OU05pYkNvbm5lY3RvctINK7e4gCakPTxWvIAJgAuAD4Ak0g0gIb+ABIAlXU5TQXBwbGljYXRpb27SJSarwqKrKdINK7fFgCakFj08FoACgAmAC4AC0g0rt8yAJqYWPTxWvDWAAoAJgAuAD4AkgAjSDSu31YAmptbX2Nna24AqgCuALIAtgC6ALxAFEAcQCBAJEArSDSsz44AeoNINK7fmgCag0iUm6OleTlNJQk9iamVjdERhdGGi6ClfEA9OU0tleWVkQXJjaGl2ZXLR7O1dSUIub2JqZWN0ZGF0YYABAAgAEQAaACMALQAyADcAbQBzAIoAnQCrALIAvwDGANEA3wDxAQ0BJwFDAUUBRwFJAUsBTQFPAVEBUwFVAVcBWQFeAWoBbAFuAXcBfAGHAZABnwGiAasBsAG7Ab0BvgHDAdAB1AHaAd8B4QHjAeUB7gH2AgQCDQIPAhECEwIVAiQCMgI7Ak0CZAJwAnsCfQJ/AoIChAKGAogCigKPApECkwKVAqgCsgK5AsUC4QLiAuQC5gLpAusC7QLvAvEC8wL9AwEDDAMfAysDOANDA1YDZANwA3oDjgOTA5gDmgOcA54DoAOiA6QDpgOuA7cDvgPFA84D0APSA9sD3gPrA/AD9wP6BAUEEwQfBCwENAQ2BDgEOgQ8BD4ERQRSBFkEYQRjBGUEcwR4BIAEgwSOBJAEkgSUBJYEqQSwBLIEtQS6BMwE0QTeBOUE6gT2BPwFBgUNBRkFHgUtBTEFOQVDBUgFWgVfBXEFewWABZcFmwWqBa8FsQW2BbgFugW8Bb4FwwXFBccF1QXaBd0F4gXkBekF6wXtBe8F8QX2BfgF/wYBBgMGBQYHBgkGCwYQBhIGGQYbBh0GHwYhBiMGJQYnBikGKwYtBi8GNAY2BjcGPAY+Bj8GRAZTBlYGaAZrBnkAAAAAAAACAQAAAAAAAADuAAAAAAAAAAAAAAAAAAAGew==</data>
|
||||
<integer>12</integer>
|
||||
<string>String</string>
|
||||
</array>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
@@ -0,0 +1,103 @@
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<!--
|
||||
index-debug.html
|
||||
CPPropertyListSerializationTest
|
||||
|
||||
Created by You on March 9, 2012.
|
||||
Copyright 2012, Your Company All rights reserved.
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, chrome=1" />
|
||||
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
<link rel="apple-touch-icon" href="Resources/icon.png" />
|
||||
<link rel="apple-touch-startup-image" href="Resources/default.png" />
|
||||
|
||||
<title>CPPropertyListSerializationTest</title>
|
||||
|
||||
<script type="text/javascript">
|
||||
OBJJ_MAIN_FILE = "main.j";
|
||||
OBJJ_INCLUDE_PATHS = ["Frameworks/Debug", "Frameworks", "SomethingElse"];
|
||||
</script>
|
||||
|
||||
<script src="Frameworks/Debug/Objective-J/Objective-J.js" type="text/javascript" charset="UTF-8"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
objj_msgSend_reset();
|
||||
|
||||
// DEBUG OPTIONS:
|
||||
|
||||
// Uncomment to enable printing of backtraces on exceptions:
|
||||
//objj_msgSend_decorate(objj_backtrace_decorator);
|
||||
|
||||
// Uncomment to supress exceptions that take place inside a message
|
||||
//objj_msgSend_decorate(objj_supress_exceptions_decorator)
|
||||
|
||||
// Uncomment to enable runtime type checking:
|
||||
//objj_msgSend_decorate(objj_typecheck_decorator);
|
||||
|
||||
// Uncomment (along with both above) to print backtraces on type check errors:
|
||||
//objj_typecheck_prints_backtrace = true;
|
||||
|
||||
// Uncomment to disable the default logger (CPLogConsole if window.console exists, CPLogPopup otherwise):
|
||||
//CPLogUnregister(CPLogDefault);
|
||||
|
||||
// Uncomment to enable a specific logger:
|
||||
//CPLogRegister(CPLogConsole);
|
||||
//CPLogRegister(CPLogPopup);
|
||||
</script>
|
||||
|
||||
<style type="text/css">
|
||||
body{margin:0; padding:0;}
|
||||
#container {position: absolute; top:50%; left:50%;}
|
||||
#content {width:800px; text-align:center; margin-left: -400px; height:50px; margin-top:-25px; line-height: 50px;}
|
||||
#content {font-family: "Helvetica", "Arial", sans-serif; font-size: 18px; color: black; text-shadow: 0px 1px 0px white; }
|
||||
#loadgraphic {margin-right: 0.2em; margin-bottom:-2px;}
|
||||
</style>
|
||||
|
||||
<!--[if lt IE 7]>
|
||||
<STYLE type="text/css">
|
||||
#container { position: relative; top: 50%; }
|
||||
#content { position: relative;}
|
||||
</STYLE>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body style="">
|
||||
<div id="cappuccino-body">
|
||||
<div id="loadingcontainer" style="background-color: #eeeeee; overflow:hidden; width:100%; height:100%; position: absolute; top: 0; left: 0;">
|
||||
<script type="text/javascript">
|
||||
document.write("<div id='container'><p id='content'>" +
|
||||
"<img id='loadgraphic' width='16' height='16' src='Resources/spinner.gif' /> " +
|
||||
"Loading CPPropertyListSerializationTest...</p></div>");
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
<div id="container">
|
||||
<div style="width: 440px; padding: 10px 25px 20px 25px; font-family: sans-serif; background-color: #ffffff; position: relative; left: -245px; top: -120px; text-align: center; -moz-border-radius: 20px; -webkit-border-radius: 20px; color: #555555">
|
||||
<p style="line-height: 1.4em;">JavaScript is required for this site to work correctly but is either disabled or not supported by your browser.</p>
|
||||
<p style="font-size:120%; padding:10px;"><a href="http://cappuccino.org/noscript">Show me how to enable JavaScript</a></p>
|
||||
<p style="font-size:80%;">You may want to upgrade to a newer browser while you're at it:</p>
|
||||
<ul style="margin:0;padding:0; text-align: center; font-size:80%;" >
|
||||
<li style="display: inline;"><a href="http://www.apple.com/safari/download/">Safari</a></li>
|
||||
<li style="display: inline;"><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
|
||||
<li style="display: inline;"><a href="http://www.google.com/chrome/">Chrome</a></li>
|
||||
<li style="display: inline;"><a href="http://www.opera.com/download/">Opera</a></li>
|
||||
<li style="display: inline;"><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,78 @@
|
||||
<!DOCTYPE html
|
||||
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
||||
<!--
|
||||
index.html
|
||||
CPPropertyListSerializationTest
|
||||
|
||||
Created by You on March 9, 2012.
|
||||
Copyright 2012, Your Company All rights reserved.
|
||||
-->
|
||||
<head>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7, chrome=1" />
|
||||
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
|
||||
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
<link rel="apple-touch-icon" href="Resources/icon.png" />
|
||||
<link rel="apple-touch-startup-image" href="Resources/default.png" />
|
||||
|
||||
<title>CPPropertyListSerializationTest</title>
|
||||
|
||||
<script type="text/javascript">
|
||||
OBJJ_MAIN_FILE = "main.j";
|
||||
</script>
|
||||
|
||||
<script type="text/javascript" src="Frameworks/Objective-J/Objective-J.js" charset="UTF-8"></script>
|
||||
|
||||
<style type="text/css">
|
||||
body{margin:0; padding:0;}
|
||||
#container {position: absolute; top:50%; left:50%;}
|
||||
#content {width:800px; text-align:center; margin-left: -400px; height:50px; margin-top:-25px; line-height: 50px;}
|
||||
#content {font-family: "Helvetica", "Arial", sans-serif; font-size: 18px; color: black; text-shadow: 0px 1px 0px white; }
|
||||
#loadgraphic {margin-right: 0.2em; margin-bottom:-2px;}
|
||||
</style>
|
||||
|
||||
<!--[if lt IE 7]>
|
||||
<STYLE type="text/css">
|
||||
#container { position: relative; top: 50%; }
|
||||
#content { position: relative;}
|
||||
</STYLE>
|
||||
<![endif]-->
|
||||
|
||||
</head>
|
||||
|
||||
<body style="">
|
||||
<div id="cappuccino-body">
|
||||
<div id="loadingcontainer" style="background-color: #eeeeee; overflow:hidden; width:100%; height:100%; position: absolute; top: 0; left: 0;">
|
||||
<script type="text/javascript">
|
||||
document.write("<div id='container'><p id='content'>" +
|
||||
"<img id='loadgraphic' width='16' height='16' src='Resources/spinner.gif' /> " +
|
||||
"Loading CPPropertyListSerializationTest...</p></div>");
|
||||
</script>
|
||||
|
||||
<noscript>
|
||||
<div id="container">
|
||||
<div style="width: 440px; padding: 10px 25px 20px 25px; font-family: sans-serif; background-color: #ffffff; position: relative; left: -245px; top: -120px; text-align: center; -moz-border-radius: 20px; -webkit-border-radius: 20px; color: #555555">
|
||||
<p style="line-height: 1.4em;">JavaScript is required for this site to work correctly but is either disabled or not supported by your browser.</p>
|
||||
<p style="font-size:120%; padding:10px;"><a href="http://cappuccino.org/noscript">Show me how to enable JavaScript</a></p>
|
||||
<p style="font-size:80%;">You may want to upgrade to a newer browser while you're at it:</p>
|
||||
<ul style="margin:0;padding:0; text-align: center; font-size:80%;" >
|
||||
<li style="display: inline;"><a href="http://www.apple.com/safari/download/">Safari</a></li>
|
||||
<li style="display: inline;"><a href="http://www.mozilla.com/en-US/firefox/">Firefox</a></li>
|
||||
<li style="display: inline;"><a href="http://www.google.com/chrome/">Chrome</a></li>
|
||||
<li style="display: inline;"><a href="http://www.opera.com/download/">Opera</a></li>
|
||||
<li style="display: inline;"><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx">Internet Explorer</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
* AppController.j
|
||||
* CPPropertyListSerializationTest
|
||||
*
|
||||
* Created by You on March 9, 2012.
|
||||
* Copyright 2012, Your Company All rights reserved.
|
||||
*/
|
||||
|
||||
@import <Foundation/Foundation.j>
|
||||
@import <AppKit/AppKit.j>
|
||||
|
||||
@import "AppController.j"
|
||||
|
||||
|
||||
function main(args, namedArgs)
|
||||
{
|
||||
CPApplicationMain(args, namedArgs);
|
||||
}
|
||||
Reference in New Issue
Block a user