Index: Tools/TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm |
diff --git a/Tools/TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm b/Tools/TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm |
deleted file mode 100644 |
index 39504dda8640cbfeb3bd3a8cfc4cf7c3f822e170..0000000000000000000000000000000000000000 |
--- a/Tools/TestWebKitAPI/Tests/mac/WebViewDidCreateJavaScriptContext.mm |
+++ /dev/null |
@@ -1,287 +0,0 @@ |
-/* |
- * Copyright (C) 2013 Apple Inc. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' |
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, |
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS |
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF |
- * THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#import "config.h" |
-#import "PlatformUtilities.h" |
-#import <JavaScriptCore/JSExport.h> |
-#import <JavaScriptCore/JSContext.h> |
-#import <WebKit/WebFrameLoadDelegatePrivate.h> |
-#import <wtf/RetainPtr.h> |
- |
-#if JSC_OBJC_API_ENABLED |
- |
-@class MyConsole; |
- |
-static bool didFinishLoad = false; |
-static bool didCompleteTestSuccessfully = false; |
-static bool didCallWindowCallback = false; |
-static bool didFindMyCustomProperty = false; |
-static bool didInsertMyCustomProperty = true; |
- |
-@protocol MyConsole<JSExport> |
-- (void)log:(NSString *)s; |
-- (void)printHelloWorld; |
-- (int)add:(int)a to:(int)b; |
-@end |
- |
-@interface MyConsole : NSObject<MyConsole> |
-@end |
- |
-@implementation MyConsole |
-- (void)log:(NSString *)s |
-{ |
- NSLog(@"%@", s); |
-} |
- |
-- (void)printHelloWorld |
-{ |
- NSLog(@"Hello, World!"); |
-} |
- |
-- (int)add:(int)a to:(int)b |
-{ |
- return a + b; |
-} |
-@end |
- |
-@interface DidCreateJavaScriptContextFrameLoadDelegate : NSObject |
-@end |
- |
-@implementation DidCreateJavaScriptContextFrameLoadDelegate |
- |
-- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame |
-{ |
- didFinishLoad = true; |
-} |
- |
-- (void)webView:(WebView *)webView didCreateJavaScriptContext:(JSContext *)context forFrame:(WebFrame *)frame |
-{ |
- MyConsole *myConsole = [[MyConsole alloc] init]; |
- context[@"myConsole"] = myConsole; |
- context.exceptionHandler = nil; |
- [myConsole release]; |
- |
- context[@"windowCallback"] = ^(JSValue *thisObject){ |
- didCallWindowCallback = true; |
- }; |
- |
- context[@"didCompleteTestSuccessfully"] = ^{ |
- didCompleteTestSuccessfully = true; |
- }; |
- |
- context[@"callMeBack"] = ^(JSValue *functionValue) { |
- [functionValue callWithArguments:[NSArray array]]; |
- }; |
- |
- context[@"checkForMyCustomProperty"] = ^(JSValue *element) { |
- if ([element hasProperty:@"myCustomProperty"] && [[element valueForProperty:@"myCustomProperty"] toInt32] == 42) |
- didFindMyCustomProperty = true; |
- else |
- NSLog(@"ERROR: Did not find myCustomProperty."); |
- }; |
- |
- context[@"insertMyCustomProperty"] = ^(JSValue *element) { |
- JSValue *fortyTwo = [JSValue valueWithInt32:42 inContext:[JSContext currentContext]]; |
- [element setValue:fortyTwo forProperty:@"myCustomProperty"]; |
- didInsertMyCustomProperty = true; |
- }; |
-} |
- |
-@end |
- |
-namespace TestWebKitAPI { |
- |
-TEST(WebKit1, DidCreateJavaScriptContextSanity1) |
-{ |
- didFinishLoad = false; |
- @autoreleasepool { |
- RetainPtr<WebView> webView = adoptNS([[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); |
- RetainPtr<DidCreateJavaScriptContextFrameLoadDelegate> frameLoadDelegate = adoptNS([[DidCreateJavaScriptContextFrameLoadDelegate alloc] init]); |
- |
- webView.get().frameLoadDelegate = frameLoadDelegate.get(); |
- WebFrame *mainFrame = webView.get().mainFrame; |
- |
- NSString *bodyString = |
- @"<body> \ |
- <script> \ |
- myConsole.printHelloWorld(); \ |
- myConsole.log(\"Loaded custom stuff.\"); \ |
- myConsole.log(myConsole.addTo(40, 2)); \ |
- didCompleteTestSuccessfully(); \ |
- </script> \ |
- </body>"; |
- NSURL *aboutBlankURL = [NSURL URLWithString:@"about:blank"]; |
- |
- [mainFrame loadHTMLString:bodyString baseURL:aboutBlankURL]; |
- Util::run(&didCompleteTestSuccessfully); |
- } |
-} |
- |
-TEST(WebKit1, DidCreateJavaScriptContextSanity2) |
-{ |
- didCallWindowCallback = false; |
- @autoreleasepool { |
- RetainPtr<WebView> webView = adoptNS([[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); |
- RetainPtr<DidCreateJavaScriptContextFrameLoadDelegate> frameLoadDelegate = adoptNS([[DidCreateJavaScriptContextFrameLoadDelegate alloc] init]); |
- |
- webView.get().frameLoadDelegate = frameLoadDelegate.get(); |
- WebFrame *mainFrame = webView.get().mainFrame; |
- |
- NSString *bodyString = |
- @"<body> \ |
- <script> \ |
- setTimeout(windowCallback, 100); \ |
- </script> \ |
- </body>"; |
- NSURL *aboutBlankURL = [NSURL URLWithString:@"about:blank"]; |
- |
- [mainFrame loadHTMLString:bodyString baseURL:aboutBlankURL]; |
- Util::run(&didCallWindowCallback); |
- } |
-} |
- |
-TEST(WebKit1, DidCreateJavaScriptContextCallJSFunctionFromObjCCallbackTest) |
-{ |
- @autoreleasepool { |
- RetainPtr<WebView> webView = adoptNS([[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); |
- RetainPtr<DidCreateJavaScriptContextFrameLoadDelegate> frameLoadDelegate = adoptNS([[DidCreateJavaScriptContextFrameLoadDelegate alloc] init]); |
- |
- webView.get().frameLoadDelegate = frameLoadDelegate.get(); |
- WebFrame *mainFrame = webView.get().mainFrame; |
- |
- NSString *bodyString = |
- @"<body> \ |
- <script> \ |
- callMeBack(function() { \ |
- didCompleteTestSuccessfully(); \ |
- }); \ |
- </script> \ |
- </body>"; |
- NSURL *aboutBlankURL = [NSURL URLWithString:@"about:blank"]; |
- |
- [mainFrame loadHTMLString:bodyString baseURL:aboutBlankURL]; |
- Util::run(&didCompleteTestSuccessfully); |
- } |
-} |
- |
-TEST(WebKit1, DidCreateJavaScriptContextAddCustomPropertiesFromJSTest) |
-{ |
- didFindMyCustomProperty = false; |
- @autoreleasepool { |
- RetainPtr<WebView> webView = adoptNS([[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); |
- RetainPtr<DidCreateJavaScriptContextFrameLoadDelegate> frameLoadDelegate = adoptNS([[DidCreateJavaScriptContextFrameLoadDelegate alloc] init]); |
- |
- webView.get().frameLoadDelegate = frameLoadDelegate.get(); |
- WebFrame *mainFrame = webView.get().mainFrame; |
- |
- NSString *bodyString = |
- @"<body> \ |
- <div id=\"test-div\"></div> \ |
- <script> \ |
- var testDiv = document.getElementById(\"test-div\"); \ |
- testDiv.myCustomProperty = 42; \ |
- checkForMyCustomProperty(testDiv); \ |
- </script> \ |
- </body>"; |
- NSURL *aboutBlankURL = [NSURL URLWithString:@"about:blank"]; |
- |
- [mainFrame loadHTMLString:bodyString baseURL:aboutBlankURL]; |
- Util::run(&didFindMyCustomProperty); |
- } |
-} |
- |
-TEST(WebKit1, DidCreateJavaScriptContextAddCustomPropertiesFromObjCTest) |
-{ |
- didFindMyCustomProperty = false; |
- @autoreleasepool { |
- RetainPtr<WebView> webView = adoptNS([[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); |
- RetainPtr<DidCreateJavaScriptContextFrameLoadDelegate> frameLoadDelegate = adoptNS([[DidCreateJavaScriptContextFrameLoadDelegate alloc] init]); |
- |
- webView.get().frameLoadDelegate = frameLoadDelegate.get(); |
- WebFrame *mainFrame = webView.get().mainFrame; |
- |
- NSString *bodyString = |
- @"<body> \ |
- <div id=\"test-div\"></div> \ |
- <script> \ |
- var testDiv = document.getElementById(\"test-div\"); \ |
- insertMyCustomProperty(testDiv); \ |
- if (testDiv.myCustomProperty === 42) { \ |
- checkForMyCustomProperty(testDiv); \ |
- } \ |
- </script> \ |
- </body>"; |
- NSURL *aboutBlankURL = [NSURL URLWithString:@"about:blank"]; |
- |
- [mainFrame loadHTMLString:bodyString baseURL:aboutBlankURL]; |
- Util::run(&didFindMyCustomProperty); |
- } |
-} |
- |
-TEST(WebKit1, DidCreateJavaScriptContextBackForwardCacheTest) |
-{ |
- didInsertMyCustomProperty = false; |
- didFindMyCustomProperty = false; |
- didCompleteTestSuccessfully = false; |
- @autoreleasepool { |
- RetainPtr<WebView> webView = adoptNS([[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); |
- RetainPtr<DidCreateJavaScriptContextFrameLoadDelegate> frameLoadDelegate = adoptNS([[DidCreateJavaScriptContextFrameLoadDelegate alloc] init]); |
- |
- webView.get().frameLoadDelegate = frameLoadDelegate.get(); |
- WebFrame *mainFrame = webView.get().mainFrame; |
- |
- NSURL *url1 = [[NSBundle mainBundle] URLForResource:@"JSContextBackForwardCache1" |
- withExtension:@"html" |
- subdirectory:@"TestWebKitAPI.resources"]; |
- [mainFrame loadRequest:[NSURLRequest requestWithURL:url1]]; |
- Util::run(&didInsertMyCustomProperty); |
- |
- NSURL *url2 = [[NSBundle mainBundle] URLForResource:@"JSContextBackForwardCache2" |
- withExtension:@"html" |
- subdirectory:@"TestWebKitAPI.resources"]; |
- [mainFrame loadRequest:[NSURLRequest requestWithURL:url2]]; |
- Util::run(&didCompleteTestSuccessfully); |
- |
- didCompleteTestSuccessfully = false; |
- [[mainFrame javaScriptContext] evaluateScript: |
- @"var testDiv = document.getElementById(\"test-div\"); \ |
- if (!testDiv.myCustomProperty) { \ |
- didCompleteTestSuccessfully(); \ |
- }"]; |
- EXPECT_TRUE(didCompleteTestSuccessfully); |
- |
- if ([webView.get() goBack]) { |
- [[mainFrame javaScriptContext] evaluateScript: |
- @"var testDiv = document.getElementById(\"test-div\"); \ |
- checkForMyCustomProperty(testDiv);"]; |
- EXPECT_TRUE(didFindMyCustomProperty); |
- } else |
- EXPECT_TRUE(false); |
- } |
-} |
- |
-} // namespace TestWebKitAPI |
- |
-#endif // ENABLE(JSC_OBJC_API) |