diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-06-20 13:01:08 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-06-20 13:01:08 +0200 |
commit | 49233e234e5c787396cadb2cea33b31ae0cd65c1 (patch) | |
tree | 5410cb9a8fd53168bb60d62c54b654d86f03c38d /Tools/TestWebKitAPI | |
parent | b211c645d8ab690f713515dfdc84d80b11c27d2c (diff) | |
download | qtwebkit-49233e234e5c787396cadb2cea33b31ae0cd65c1.tar.gz |
Imported WebKit commit 3a8c29f35d00659d2ce7a0ccdfa8304f14e82327 (http://svn.webkit.org/repository/webkit/trunk@120813)
New snapshot with Windows build fixes
Diffstat (limited to 'Tools/TestWebKitAPI')
5 files changed, 142 insertions, 1 deletions
diff --git a/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj b/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj index c519c0231..628a59586 100644 --- a/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj +++ b/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj @@ -50,6 +50,8 @@ 51FCF7A11534B2A000104491 /* ShouldGoToBackForwardListItem_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 51FCF7971534AC6D00104491 /* ShouldGoToBackForwardListItem_Bundle.cpp */; }; 520BCF4C141EB09E00937EA8 /* WebArchive_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 520BCF4A141EB09E00937EA8 /* WebArchive_Bundle.cpp */; }; 520BCF4D141EB09E00937EA8 /* WebArchive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 520BCF4B141EB09E00937EA8 /* WebArchive.cpp */; }; + 52B8CF9615868CF000281053 /* SetDocumentURI.mm in Sources */ = {isa = PBXBuildFile; fileRef = 52B8CF9515868CF000281053 /* SetDocumentURI.mm */; }; + 52B8CF9815868D9100281053 /* SetDocumentURI.html in Copy Resources */ = {isa = PBXBuildFile; fileRef = 52B8CF9415868CF000281053 /* SetDocumentURI.html */; }; 52CB47411448FB9300873995 /* LoadAlternateHTMLStringWithNonDirectoryURL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52CB47401448FB9300873995 /* LoadAlternateHTMLStringWithNonDirectoryURL.cpp */; }; 52E5CE4614D21E9D003B2BD8 /* ParentFrame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52E5CE4514D21E9D003B2BD8 /* ParentFrame.cpp */; }; 52E5CE4914D21EAB003B2BD8 /* ParentFrame_Bundle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 52E5CE4814D21EAB003B2BD8 /* ParentFrame_Bundle.cpp */; }; @@ -179,6 +181,7 @@ dstPath = TestWebKitAPI.resources; dstSubfolderSpec = 7; files = ( + 52B8CF9815868D9100281053 /* SetDocumentURI.html in Copy Resources */, B55F11BE15191A0600915916 /* Ahem.ttf in Copy Resources */, B55F11B71517D03300915916 /* attributedStringCustomFont.html in Copy Resources */, 76E182DF154767E600F1FADD /* auto-submitting-form.html in Copy Resources */, @@ -254,6 +257,8 @@ 51FCF7981534AC6D00104491 /* ShouldGoToBackForwardListItem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ShouldGoToBackForwardListItem.cpp; sourceTree = "<group>"; }; 520BCF4A141EB09E00937EA8 /* WebArchive_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebArchive_Bundle.cpp; sourceTree = "<group>"; }; 520BCF4B141EB09E00937EA8 /* WebArchive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebArchive.cpp; sourceTree = "<group>"; }; + 52B8CF9415868CF000281053 /* SetDocumentURI.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = SetDocumentURI.html; sourceTree = "<group>"; }; + 52B8CF9515868CF000281053 /* SetDocumentURI.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = SetDocumentURI.mm; sourceTree = "<group>"; }; 52CB47401448FB9300873995 /* LoadAlternateHTMLStringWithNonDirectoryURL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoadAlternateHTMLStringWithNonDirectoryURL.cpp; sourceTree = "<group>"; }; 52E5CE4514D21E9D003B2BD8 /* ParentFrame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParentFrame.cpp; sourceTree = "<group>"; }; 52E5CE4814D21EAB003B2BD8 /* ParentFrame_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ParentFrame_Bundle.cpp; sourceTree = "<group>"; }; @@ -657,6 +662,7 @@ E1220D9F155B25480013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.mm */, 517E7DFB15110EA600D0B008 /* MemoryCachePruneWithinResourceLoadDelegate.mm */, 3722C8681461E03E00C45D00 /* RenderedImageFromDOMRange.mm */, + 52B8CF9515868CF000281053 /* SetDocumentURI.mm */, C540F775152E4DA000A40C8C /* SimplifyMarkup.mm */, 3799AD3914120A43005EB0C6 /* StringByEvaluatingJavaScriptFromString.mm */, 37A6895D148A9B50005100FA /* SubresourceErrorCrash.mm */, @@ -669,6 +675,7 @@ C07E6CB013FD737C0038B22B /* Resources */ = { isa = PBXGroup; children = ( + 52B8CF9415868CF000281053 /* SetDocumentURI.html */, B55F11B9151916E600915916 /* Ahem.ttf */, B55F11B01517A2C400915916 /* attributedStringCustomFont.html */, 379028B814FABE49007E6B43 /* acceptsFirstMouse.html */, @@ -883,6 +890,7 @@ E1220DA0155B25480013E2FC /* MemoryCacheDisableWithinResourceLoadDelegate.mm in Sources */, F6F49C6915545C8E0007F39D /* DOMWindowExtensionNoCache.cpp in Sources */, 51E93017156B13E1004C99DF /* WKPageGetScaleFactorNotZero.cpp in Sources */, + 52B8CF9615868CF000281053 /* SetDocumentURI.mm in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Tools/TestWebKitAPI/Tests/mac/SetDocumentURI.html b/Tools/TestWebKitAPI/Tests/mac/SetDocumentURI.html new file mode 100644 index 000000000..ad3714bb0 --- /dev/null +++ b/Tools/TestWebKitAPI/Tests/mac/SetDocumentURI.html @@ -0,0 +1,8 @@ +<!doctype html> +<html> + <body> + <p>This is a document to load so that the ObjC [document setDocumentURI:] + API can be tested.</p> + <a href="relativeURL.html" id="relative"></a> + </body> +</html> diff --git a/Tools/TestWebKitAPI/Tests/mac/SetDocumentURI.mm b/Tools/TestWebKitAPI/Tests/mac/SetDocumentURI.mm new file mode 100644 index 000000000..f077ed95b --- /dev/null +++ b/Tools/TestWebKitAPI/Tests/mac/SetDocumentURI.mm @@ -0,0 +1,121 @@ +/* + * Copyright (C) 2012 Google 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. + */ + +#include "config.h" +#include "PlatformUtilities.h" +#include "PlatformWebView.h" +#include <wtf/RetainPtr.h> + +#import <WebKit/DOM.h> +#import <WebKit/WebViewPrivate.h> + +@interface SetDocumentURITest : NSObject { +} +@end + +static bool didFinishLoad; + +@implementation SetDocumentURITest + +- (void)webView:(WebView *)sender didFinishLoadForFrame:(WebFrame *)frame +{ + didFinishLoad = true; +} +@end + +namespace TestWebKitAPI { + +TEST(WebKit1, SetDocumentURITestFile) +{ + RetainPtr<WebView> webView(AdoptNS, [[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); + RetainPtr<SetDocumentURITest> testController(AdoptNS, [SetDocumentURITest new]); + webView.get().frameLoadDelegate = testController.get(); + [[webView.get() mainFrame] loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"SetDocumentURI" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]]; + Util::run(&didFinishLoad); + didFinishLoad = false; + DOMDocument *document = webView.get().mainFrameDocument; + + [document setDocumentURI:@"file:///test"]; + // documentURI set correctly. + EXPECT_WK_STREQ(@"file:///test", [document documentURI]); + // baseURI follows along. + EXPECT_WK_STREQ(@"file:///test", [document baseURI]); +} + +TEST(WebKit1, SetDocumentURITestURL) +{ + RetainPtr<WebView> webView(AdoptNS, [[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); + RetainPtr<SetDocumentURITest> testController(AdoptNS, [SetDocumentURITest new]); + webView.get().frameLoadDelegate = testController.get(); + [[webView.get() mainFrame] loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"SetDocumentURI" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]]; + Util::run(&didFinishLoad); + didFinishLoad = false; + DOMDocument *document = webView.get().mainFrameDocument; + + [document setDocumentURI:@"http://example.com/"]; + // documentURI set correctly. + EXPECT_WK_STREQ(@"http://example.com/", [document documentURI]); + // baseURI follows along. + EXPECT_WK_STREQ(@"http://example.com/", [document baseURI]); + // Relative links too. + NSString *result = [webView.get() stringByEvaluatingJavaScriptFromString:@"document.getElementById('relative').href"]; + EXPECT_WK_STREQ(@"http://example.com/relativeURL.html", result); +} + +TEST(WebKit1, SetDocumentURITestString) +{ + RetainPtr<WebView> webView(AdoptNS, [[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); + RetainPtr<SetDocumentURITest> testController(AdoptNS, [SetDocumentURITest new]); + webView.get().frameLoadDelegate = testController.get(); + [[webView.get() mainFrame] loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"SetDocumentURI" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]]; + Util::run(&didFinishLoad); + didFinishLoad = false; + DOMDocument *document = webView.get().mainFrameDocument; + + [document setDocumentURI:@"A non-URL string."]; + // documentURI accepts random strings. + EXPECT_WK_STREQ(@"A non-URL string.", [document documentURI]); + // baseURI is empty for non-URL strings. + EXPECT_WK_STREQ(@"", [document baseURI]); +} + +TEST(WebKit1, SetDocumentURITestNull) +{ + RetainPtr<WebView> webView(AdoptNS, [[WebView alloc] initWithFrame:NSMakeRect(0, 0, 120, 200) frameName:nil groupName:nil]); + RetainPtr<SetDocumentURITest> testController(AdoptNS, [SetDocumentURITest new]); + webView.get().frameLoadDelegate = testController.get(); + [[webView.get() mainFrame] loadRequest:[NSURLRequest requestWithURL:[[NSBundle mainBundle] URLForResource:@"SetDocumentURI" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"]]]; + Util::run(&didFinishLoad); + didFinishLoad = false; + DOMDocument *document = webView.get().mainFrameDocument; + + [document setDocumentURI:nil]; + // documenturi is empty. + EXPECT_WK_STREQ(@"", [document documentURI]); + // baseURI is null as well. + EXPECT_WK_STREQ(@"", [document baseURI]); +} + +} // namespace TestWebKitAPI diff --git a/Tools/TestWebKitAPI/Tests/mac/StringByEvaluatingJavaScriptFromString.mm b/Tools/TestWebKitAPI/Tests/mac/StringByEvaluatingJavaScriptFromString.mm index 1e64fb794..4e3e3ec75 100644 --- a/Tools/TestWebKitAPI/Tests/mac/StringByEvaluatingJavaScriptFromString.mm +++ b/Tools/TestWebKitAPI/Tests/mac/StringByEvaluatingJavaScriptFromString.mm @@ -55,6 +55,10 @@ TEST(WebKit1, StringByEvaluatingJavaScriptFromString) RetainPtr<WebView> webView (AdoptNS, [[WebView alloc] initWithFrame:NSZeroRect frameName:@"" groupName:@""]); + // Test a nil string + NSString *result = [webView.get() stringByEvaluatingJavaScriptFromString:nil]; + EXPECT_WK_STREQ(@"", result); + for (id expression in expressions.get()) { NSString *expectedResult = [expressions.get() objectForKey:expression]; NSString *result = [webView.get() stringByEvaluatingJavaScriptFromString:expression]; diff --git a/Tools/TestWebKitAPI/mac/InjectedBundleControllerMac.mm b/Tools/TestWebKitAPI/mac/InjectedBundleControllerMac.mm index 65891ce81..4dd4ef020 100644 --- a/Tools/TestWebKitAPI/mac/InjectedBundleControllerMac.mm +++ b/Tools/TestWebKitAPI/mac/InjectedBundleControllerMac.mm @@ -40,7 +40,7 @@ void InjectedBundleController::platformInitialize() NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithInteger:4], @"AppleAntiAliasingThreshold", [NSNumber numberWithInteger:0], @"AppleFontSmoothing", -#if !defined(BUILDING_ON_SNOW_LEOPARD) && !defined(BUILDING_ON_LION) +#if !defined(BUILDING_ON_SNOW_LEOPARD) && !defined(BUILDING_ON_LION) && !PLATFORM(CHROMIUM) [NSNumber numberWithBool:NO], @"NSScrollAnimationEnabled", #else [NSNumber numberWithBool:NO], @"AppleScrollAnimationEnabled", |