Title: [210268] trunk/Tools
Revision
210268
Author
[email protected]
Date
2017-01-03 19:52:03 -0800 (Tue, 03 Jan 2017)

Log Message

Place all the Cocoa WebCore API tests in the same directory
https://bugs.webkit.org/show_bug.cgi?id=166673

Reviewed by Michael Catanzaro.

* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
* TestWebKitAPI/Tests/WebCore/cocoa/SerializedCryptoKeyWrap.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/SerializedCryptoKeyWrap.mm.
* TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm: Renamed from Tools/TestWebKitAPI/Tests/Cocoa/URLExtras.mm.
* TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm.

Modified Paths

Added Paths

Removed Paths

Diff

Modified: trunk/Tools/ChangeLog (210267 => 210268)


--- trunk/Tools/ChangeLog	2017-01-04 03:39:39 UTC (rev 210267)
+++ trunk/Tools/ChangeLog	2017-01-04 03:52:03 UTC (rev 210268)
@@ -1,3 +1,15 @@
+2017-01-03  Andy Estes  <[email protected]>
+
+        Place all the Cocoa WebCore API tests in the same directory
+        https://bugs.webkit.org/show_bug.cgi?id=166673
+
+        Reviewed by Michael Catanzaro.
+
+        * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
+        * TestWebKitAPI/Tests/WebCore/cocoa/SerializedCryptoKeyWrap.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/SerializedCryptoKeyWrap.mm.
+        * TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm: Renamed from Tools/TestWebKitAPI/Tests/Cocoa/URLExtras.mm.
+        * TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm: Renamed from Tools/TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm.
+
 2017-01-03  Tim Horton  <[email protected]>
 
         NSSpellChecker's recordResponse isn't called for unseen automatic corrections

Modified: trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj (210267 => 210268)


--- trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj	2017-01-04 03:39:39 UTC (rev 210267)
+++ trunk/Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj	2017-01-04 03:52:03 UTC (rev 210268)
@@ -1099,7 +1099,7 @@
 		93A427AC180DA60F00CD24D7 /* MoveOnly.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MoveOnly.h; sourceTree = "<group>"; };
 		93A427AD180DA60F00CD24D7 /* RefLogger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RefLogger.h; sourceTree = "<group>"; };
 		93A720E518F1A0E800A848E1 /* CalculationValue.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CalculationValue.cpp; sourceTree = "<group>"; };
-		93A7EB3C18FA63A4009E7670 /* URLExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = URLExtras.mm; path = ../Cocoa/URLExtras.mm; sourceTree = "<group>"; };
+		93A7EB3C18FA63A4009E7670 /* URLExtras.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = URLExtras.mm; sourceTree = "<group>"; };
 		93ABA80816DDAB91002DB2FA /* StringHasher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringHasher.cpp; sourceTree = "<group>"; };
 		93AF4ECA1506F035007FD57E /* NewFirstVisuallyNonEmptyLayoutForImages.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NewFirstVisuallyNonEmptyLayoutForImages.cpp; sourceTree = "<group>"; };
 		93AF4ECD1506F064007FD57E /* NewFirstVisuallyNonEmptyLayoutForImages_Bundle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = NewFirstVisuallyNonEmptyLayoutForImages_Bundle.cpp; sourceTree = "<group>"; };
@@ -1537,6 +1537,7 @@
 		440A1D3614A01000008A66F2 /* WebCore */ = {
 			isa = PBXGroup;
 			children = (
+				CD89D0371C4EDB1300040A04 /* cocoa */,
 				7A909A6F1D877475007E10F8 /* AffineTransform.cpp */,
 				7A909A701D877475007E10F8 /* FloatPoint.cpp */,
 				7A909A711D877475007E10F8 /* FloatRect.cpp */,
@@ -1544,7 +1545,6 @@
 				7A909A731D877475007E10F8 /* IntPoint.cpp */,
 				7A909A741D877475007E10F8 /* IntRect.cpp */,
 				7A909A751D877475007E10F8 /* IntSize.cpp */,
-				CD89D0371C4EDB1300040A04 /* cocoa */,
 				93A720E518F1A0E800A848E1 /* CalculationValue.cpp */,
 				7C3965051CDD74F90094DBB8 /* Color.cpp */,
 				7CB184C41AA3F2100066EDFD /* ContentExtensions.cpp */,
@@ -2157,11 +2157,11 @@
 		CD89D0371C4EDB1300040A04 /* cocoa */ = {
 			isa = PBXGroup;
 			children = (
+				5769C50A1D9B0001000847FB /* SerializedCryptoKeyWrap.mm */,
 				93A7EB3C18FA63A4009E7670 /* URLExtras.mm */,
 				CD89D0381C4EDB2A00040A04 /* WebCoreNSURLSession.mm */,
-				5769C50A1D9B0001000847FB /* SerializedCryptoKeyWrap.mm */,
 			);
-			name = cocoa;
+			path = cocoa;
 			sourceTree = "<group>";
 		};
 		CDC8E4981BC728AE00594FEC /* WebKit */ = {

Deleted: trunk/Tools/TestWebKitAPI/Tests/WebCore/SerializedCryptoKeyWrap.mm (210267 => 210268)


--- trunk/Tools/TestWebKitAPI/Tests/WebCore/SerializedCryptoKeyWrap.mm	2017-01-04 03:39:39 UTC (rev 210267)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/SerializedCryptoKeyWrap.mm	2017-01-04 03:52:03 UTC (rev 210268)
@@ -1,101 +0,0 @@
-/*
- * Copyright (C) 2016 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 <WebCore/SerializedCryptoKeyWrap.h>
-#import <wtf/MainThread.h>
-
-namespace TestWebKitAPI {
-
-// TODO: We should enable the following tests on iOS simulator once <rdar://problem/28534666> is fixed.
-// A seperate bug is filed about this: <rdar://problem/28507240>.
-#if !PLATFORM(IOS)
-class SerializedCryptoKeyWrapTest : public testing::Test {
-public:
-    virtual void SetUp()
-    {
-        WTF::initializeMainThread();
-        WebCore::deleteDefaultWebCryptoMasterKey();
-    }
-
-    virtual void TearDown()
-    {
-        WebCore::deleteDefaultWebCryptoMasterKey();
-    }
-};
-
-TEST_F(SerializedCryptoKeyWrapTest, GetDefaultWebCryptoMasterKey)
-{
-    Vector<uint8_t> masterKey1;
-    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey1));
-
-    Vector<uint8_t> masterKey2;
-    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey2));
-
-    EXPECT_TRUE(masterKey1 == masterKey2);
-}
-
-TEST_F(SerializedCryptoKeyWrapTest, DeleteDefaultWebCryptoMasterKey)
-{
-    Vector<uint8_t> masterKey1;
-    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey1));
-    EXPECT_TRUE(WebCore::deleteDefaultWebCryptoMasterKey());
-
-    Vector<uint8_t> masterKey2;
-    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey2));
-
-    EXPECT_TRUE(masterKey1 != masterKey2);
-}
-
-TEST_F(SerializedCryptoKeyWrapTest, SerializedCryptoKeyWrapUnwrap)
-{
-    Vector<uint8_t> masterKey;
-    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey));
-
-    Vector<uint8_t> cryptoKey(16, 1);
-    Vector<uint8_t> wrappedKey;
-    EXPECT_TRUE(WebCore::wrapSerializedCryptoKey(masterKey, cryptoKey, wrappedKey));
-    EXPECT_TRUE(cryptoKey != wrappedKey);
-    // ensure wrappedKey doesn't contain cryptoKey
-    bool notContained = true;
-    size_t limit = wrappedKey.size() - cryptoKey.size() + 1;
-    for (size_t i = 0; i < limit; i++) {
-        size_t j = 0;
-        for (; j < cryptoKey.size() && wrappedKey[i + j] == cryptoKey[j]; j++) { }
-        if (j >= cryptoKey.size()) {
-            notContained = false;
-            break;
-        }
-    }
-    EXPECT_TRUE(notContained);
-
-    Vector<uint8_t> unwrappedKey;
-    EXPECT_TRUE(WebCore::unwrapSerializedCryptoKey(masterKey, wrappedKey, unwrappedKey));
-    EXPECT_TRUE(unwrappedKey == cryptoKey);
-}
-#endif
-
-} // namespace TestWebKitAPI

Deleted: trunk/Tools/TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm (210267 => 210268)


--- trunk/Tools/TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm	2017-01-04 03:39:39 UTC (rev 210267)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm	2017-01-04 03:52:03 UTC (rev 210268)
@@ -1,173 +0,0 @@
-/*
- * Copyright (C) 2016 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 COMPUTER, INC. ``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 COMPUTER, INC. OR
- * 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"
-
-#if !PLATFORM(IOS) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
-
-#import "PlatformUtilities.h"
-#import <_javascript_Core/InitializeThreading.h>
-#import <WebKit/WebView.h>
-#import <WebCore/FrameLoadRequest.h>
-#import <WebCore/MainFrame.h>
-#import <WebCore/Page.h>
-#import <WebCore/PageConfiguration.h>
-#import <WebCore/Document.h>
-#import <WebCore/DocumentLoader.h>
-#import <WebCore/MediaResourceLoader.h>
-#import <WebCore/Settings.h>
-#import <WebCore/SubresourceLoader.h>
-#import <WebCore/WebCoreNSURLSession.h>
-#import <WebCore/ResourceLoader.h>
-#import <wtf/SchedulePair.h>
-
-static bool didLoadMainResource;
-static bool didRecieveResponse;
-static bool didRecieveData;
-static bool didComplete;
-static bool didInvalidate;
-
-static NSURL *documentURL = [[NSBundle mainBundle] URLForResource:@"simple" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"];
-static NSURL *resourceURL = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"mp4" subdirectory:@"TestWebKitAPI.resources"];
-
-@interface TestNSURLSessionLoaderDelegate : NSObject<WebFrameLoadDelegate>
-@end
-
-@implementation TestNSURLSessionLoaderDelegate
-- (void)webView:(WebView *)sender didCommitLoadForFrame:(WebFrame *)frame
-{
-    UNUSED_PARAM(sender);
-    UNUSED_PARAM(frame);
-    didLoadMainResource = true;
-}
-@end
-
-@interface TestNSURLSessionDataDelegate : NSObject<NSURLSessionDataDelegate>
-@end
-
-@implementation TestNSURLSessionDataDelegate
-- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(nullable NSError *)error
-{
-    didComplete = true;
-}
-
-- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
-{
-    didRecieveResponse = true;
-    completionHandler(NSURLSessionResponseAllow);
-}
-
-- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
-{
-    didRecieveData = true;
-
-    NSData* directData = [NSData dataWithContentsOfURL:dataTask.originalRequest.URL];
-    NSData* directSubdata = [directData subdataWithRange:NSMakeRange(dataTask.countOfBytesReceived - data.length, data.length)];
-    ASSERT_TRUE([data isEqualToData:directSubdata]);
-}
-
-- (void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(nullable NSError *)error
-{
-    didInvalidate = true;
-}
-@end
-
-using namespace WebCore;
-
-@interface WebView (WebViewInternalForTesting)
-- (WebCore::Frame*)_mainCoreFrame;
-@end
-
-namespace TestWebKitAPI {
-
-class WebCoreNSURLSessionTest : public testing::Test {
-public:
-    WebView *view { nil };
-    Frame* frame { nullptr };
-    TestNSURLSessionDataDelegate *delegate { nil };
-    RefPtr<MediaResourceLoader> loader;
-
-    virtual void SetUp()
-    {
-#if PLATFORM(IOS)
-        JSC::initializeThreading();
-#endif
-        view = [[WebView alloc] initWithFrame:NSZeroRect];
-        view.frameLoadDelegate = [[[TestNSURLSessionLoaderDelegate alloc] init] autorelease];
-
-        didLoadMainResource = false;
-        view.mainFrameURL = documentURL.absoluteString;
-        TestWebKitAPI::Util::run(&didLoadMainResource);
-
-        delegate = [[TestNSURLSessionDataDelegate alloc] init];
-        frame = [view _mainCoreFrame];
-        loader = adoptRef(new MediaResourceLoader(*frame->document(), emptyString()));
-    }
-
-    virtual void TearDown()
-    {
-        [view release];
-        [delegate release];
-        loader = nullptr;
-    }
-};
-
-TEST_F(WebCoreNSURLSessionTest, BasicOperation)
-{
-    WebCoreNSURLSession* session = [[WebCoreNSURLSession alloc] initWithResourceLoader:*loader delegate:delegate delegateQueue:[NSOperationQueue mainQueue]];
-    didRecieveResponse = false;
-    didRecieveData = false;
-    didComplete = false;
-
-    NSURLSessionDataTask *task = [session dataTaskWithURL:resourceURL];
-    [task resume];
-
-    TestWebKitAPI::Util::run(&didRecieveResponse);
-    TestWebKitAPI::Util::run(&didRecieveData);
-    TestWebKitAPI::Util::run(&didComplete);
-
-    didInvalidate = false;
-
-    task = [session dataTaskWithURL:resourceURL];
-    [task resume];
-    [session finishTasksAndInvalidate];
-
-    TestWebKitAPI::Util::run(&didInvalidate);
-
-    [session release];
-}
-
-TEST_F(WebCoreNSURLSessionTest, InvalidateEmpty)
-{
-    WebCoreNSURLSession* session = [[WebCoreNSURLSession alloc] initWithResourceLoader:*loader delegate:delegate delegateQueue:[NSOperationQueue mainQueue]];
-    didInvalidate = false;
-    [session finishTasksAndInvalidate];
-    TestWebKitAPI::Util::run(&didInvalidate);
-    [session release];
-}
-
-}
-
-#endif

Copied: trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/SerializedCryptoKeyWrap.mm (from rev 210267, trunk/Tools/TestWebKitAPI/Tests/WebCore/SerializedCryptoKeyWrap.mm) (0 => 210268)


--- trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/SerializedCryptoKeyWrap.mm	                        (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/SerializedCryptoKeyWrap.mm	2017-01-04 03:52:03 UTC (rev 210268)
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2016 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 <WebCore/SerializedCryptoKeyWrap.h>
+#import <wtf/MainThread.h>
+
+namespace TestWebKitAPI {
+
+// TODO: We should enable the following tests on iOS simulator once <rdar://problem/28534666> is fixed.
+// A seperate bug is filed about this: <rdar://problem/28507240>.
+#if !PLATFORM(IOS)
+class SerializedCryptoKeyWrapTest : public testing::Test {
+public:
+    virtual void SetUp()
+    {
+        WTF::initializeMainThread();
+        WebCore::deleteDefaultWebCryptoMasterKey();
+    }
+
+    virtual void TearDown()
+    {
+        WebCore::deleteDefaultWebCryptoMasterKey();
+    }
+};
+
+TEST_F(SerializedCryptoKeyWrapTest, GetDefaultWebCryptoMasterKey)
+{
+    Vector<uint8_t> masterKey1;
+    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey1));
+
+    Vector<uint8_t> masterKey2;
+    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey2));
+
+    EXPECT_TRUE(masterKey1 == masterKey2);
+}
+
+TEST_F(SerializedCryptoKeyWrapTest, DeleteDefaultWebCryptoMasterKey)
+{
+    Vector<uint8_t> masterKey1;
+    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey1));
+    EXPECT_TRUE(WebCore::deleteDefaultWebCryptoMasterKey());
+
+    Vector<uint8_t> masterKey2;
+    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey2));
+
+    EXPECT_TRUE(masterKey1 != masterKey2);
+}
+
+TEST_F(SerializedCryptoKeyWrapTest, SerializedCryptoKeyWrapUnwrap)
+{
+    Vector<uint8_t> masterKey;
+    EXPECT_TRUE(WebCore::getDefaultWebCryptoMasterKey(masterKey));
+
+    Vector<uint8_t> cryptoKey(16, 1);
+    Vector<uint8_t> wrappedKey;
+    EXPECT_TRUE(WebCore::wrapSerializedCryptoKey(masterKey, cryptoKey, wrappedKey));
+    EXPECT_TRUE(cryptoKey != wrappedKey);
+    // ensure wrappedKey doesn't contain cryptoKey
+    bool notContained = true;
+    size_t limit = wrappedKey.size() - cryptoKey.size() + 1;
+    for (size_t i = 0; i < limit; i++) {
+        size_t j = 0;
+        for (; j < cryptoKey.size() && wrappedKey[i + j] == cryptoKey[j]; j++) { }
+        if (j >= cryptoKey.size()) {
+            notContained = false;
+            break;
+        }
+    }
+    EXPECT_TRUE(notContained);
+
+    Vector<uint8_t> unwrappedKey;
+    EXPECT_TRUE(WebCore::unwrapSerializedCryptoKey(masterKey, wrappedKey, unwrappedKey));
+    EXPECT_TRUE(unwrappedKey == cryptoKey);
+}
+#endif
+
+} // namespace TestWebKitAPI

Copied: trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm (from rev 210267, trunk/Tools/TestWebKitAPI/Tests/Cocoa/URLExtras.mm) (0 => 210268)


--- trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm	                        (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/URLExtras.mm	2017-01-04 03:52:03 UTC (rev 210268)
@@ -0,0 +1,149 @@
+/*
+ * Copyright (C) 2014 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 <WebCore/WebCoreNSURLExtras.h>
+
+namespace TestWebKitAPI {
+
+static NSData *literalAsData(const char* literal)
+{
+    return [NSData dataWithBytes:literal length:strlen(literal)];
+}
+
+static const char* dataAsString(NSData *data)
+{
+    static char buffer[1000];
+    if ([data length] > sizeof(buffer) - 1)
+        return "ERROR";
+    if (memchr([data bytes], 0, [data length]))
+        return "ERROR";
+    memcpy(buffer, [data bytes], [data length]);
+    buffer[[data length]] = '\0';
+    return buffer;
+}
+
+static const char* originalDataAsString(NSURL *URL)
+{
+    return dataAsString(WebCore::originalURLData(URL));
+}
+
+static const char* userVisibleString(NSURL *URL)
+{
+    return [WebCore::userVisibleString(URL) UTF8String];
+}
+
+static NSURL *literalURL(const char* literal)
+{
+    return WebCore::URLWithData(literalAsData(literal), nil);
+}
+
+TEST(WebCore, URLExtras)
+{
+    EXPECT_STREQ("http://site.com", originalDataAsString(literalURL("http://site.com")));
+    EXPECT_STREQ("http://%77ebsite.com", originalDataAsString(literalURL("http://%77ebsite.com")));
+
+    EXPECT_STREQ("http://site.com", userVisibleString(literalURL("http://site.com")));
+    EXPECT_STREQ("http://%77ebsite.com", userVisibleString(literalURL("http://%77ebsite.com")));
+}
+
+TEST(WebCore, URLExtras_DivisionSign)
+{
+    // Selected the division sign as an example of a non-ASCII character that is allowed in host names, since it's a lookalike character.
+
+    // Code path similar to the one used when typing in a URL.
+    EXPECT_STREQ("http://site.xn--comothersite-kjb.org", originalDataAsString(WebCore::URLWithUserTypedString(@"http://site.com\xC3\xB7othersite.org", nil)));
+    EXPECT_STREQ("http://site.com\xC3\xB7othersite.org", userVisibleString(WebCore::URLWithUserTypedString(@"http://site.com\xC3\xB7othersite.org", nil)));
+
+    // Code paths similar to the ones used for URLs found in webpages or HTTP responses.
+    EXPECT_STREQ("http://site.com\xC3\xB7othersite.org", originalDataAsString(literalURL("http://site.com\xC3\xB7othersite.org")));
+    EXPECT_STREQ("http://site.com\xC3\xB7othersite.org", userVisibleString(literalURL("http://site.com\xC3\xB7othersite.org")));
+    EXPECT_STREQ("http://site.com%C3%B7othersite.org", originalDataAsString(literalURL("http://site.com%C3%B7othersite.org")));
+    EXPECT_STREQ("http://site.com\xC3\xB7othersite.org", userVisibleString(literalURL("http://site.com%C3%B7othersite.org")));
+
+    // Separate functions that deal with just a host name on its own.
+    EXPECT_STREQ("site.xn--comothersite-kjb.org", [WebCore::encodeHostName(@"site.com\xC3\xB7othersite.org") UTF8String]);
+    EXPECT_STREQ("site.com\xC3\xB7othersite.org", [WebCore::decodeHostName(@"site.com\xC3\xB7othersite.org") UTF8String]);
+}
+
+TEST(WebCore, URLExtras_Solidus)
+{
+    // Selected full width solidus, which looks like the solidus, which is the character that indicates the end of the host name.
+
+    // Code path similar to the one used when typing in a URL.
+    EXPECT_STREQ("http://site.com/othersite.org", originalDataAsString(WebCore::URLWithUserTypedString(@"http://site.com\xEF\xBC\x8Fothersite.org", nil)));
+    EXPECT_STREQ("http://site.com/othersite.org", userVisibleString(WebCore::URLWithUserTypedString(@"http://site.com\xEF\xBC\x8Fothersite.org", nil)));
+
+    // Code paths similar to the ones used for URLs found in webpages or HTTP responses.
+    EXPECT_STREQ("http://site.com\xEF\xBC\x8Fothersite.org", originalDataAsString(literalURL("http://site.com\xEF\xBC\x8Fothersite.org")));
+    EXPECT_STREQ("http://site.com%EF%BC%8Fothersite.org", userVisibleString(literalURL("http://site.com\xEF\xBC\x8Fothersite.org")));
+    EXPECT_STREQ("http://site.com%EF%BC%8Fothersite.org", originalDataAsString(literalURL("http://site.com%EF%BC%8Fothersite.org")));
+    EXPECT_STREQ("http://site.com%EF%BC%8Fothersite.org", userVisibleString(literalURL("http://site.com%EF%BC%8Fothersite.org")));
+
+    // Separate functions that deal with just a host name on its own.
+    EXPECT_STREQ("site.com/othersite.org", [WebCore::encodeHostName(@"site.com\xEF\xBC\x8Fothersite.org") UTF8String]);
+    EXPECT_STREQ("site.com/othersite.org", [WebCore::decodeHostName(@"site.com\xEF\xBC\x8Fothersite.org") UTF8String]);
+}
+
+TEST(WebCore, URLExtras_Space)
+{
+    // Selected ideographic space, which looks like the ASCII space, which is not allowed unescaped.
+
+    // Code path similar to the one used when typing in a URL.
+    EXPECT_STREQ("http://site.com%20othersite.org", originalDataAsString(WebCore::URLWithUserTypedString(@"http://site.com\xE3\x80\x80othersite.org", nil)));
+    EXPECT_STREQ("http://site.com%20othersite.org", userVisibleString(WebCore::URLWithUserTypedString(@"http://site.com\xE3\x80\x80othersite.org", nil)));
+
+    // Code paths similar to the ones used for URLs found in webpages or HTTP responses.
+    EXPECT_STREQ("http://site.com\xE3\x80\x80othersite.org", originalDataAsString(literalURL("http://site.com\xE3\x80\x80othersite.org")));
+    EXPECT_STREQ("http://site.com%E3%80%80othersite.org", userVisibleString(literalURL("http://site.com\xE3\x80\x80othersite.org")));
+    EXPECT_STREQ("http://site.com%E3%80%80othersite.org", originalDataAsString(literalURL("http://site.com%E3%80%80othersite.org")));
+    EXPECT_STREQ("http://site.com%E3%80%80othersite.org", userVisibleString(literalURL("http://site.com%E3%80%80othersite.org")));
+
+    // Separate functions that deal with just a host name on its own.
+    EXPECT_STREQ("site.com othersite.org", [WebCore::encodeHostName(@"site.com\xE3\x80\x80othersite.org") UTF8String]);
+    EXPECT_STREQ("site.com\xE3\x80\x80othersite.org", [WebCore::decodeHostName(@"site.com\xE3\x80\x80othersite.org") UTF8String]);
+}
+
+TEST(WebCore, URLExtras_ParsingError)
+{
+    // Expect IDN failure.
+    NSURL *url = "" nil);
+    EXPECT_TRUE(url == nil);
+
+    NSString *encodedHostName = WebCore::encodeHostName(@"http://.com");
+    EXPECT_TRUE(encodedHostName == nil);
+}
+
+TEST(WebCore, URLExtras_Nil)
+{
+    NSURL *url1 = WebCore::URLWithUserTypedString(nil, nil);
+    EXPECT_TRUE(url1 == nil);
+
+    NSURL *url2 = WebCore::URLWithUserTypedStringDeprecated(nil, nil);
+    EXPECT_TRUE(url2 == nil);
+}
+
+} // namespace TestWebKitAPI

Copied: trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm (from rev 210267, trunk/Tools/TestWebKitAPI/Tests/WebCore/WebCoreNSURLSession.mm) (0 => 210268)


--- trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm	                        (rev 0)
+++ trunk/Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm	2017-01-04 03:52:03 UTC (rev 210268)
@@ -0,0 +1,173 @@
+/*
+ * Copyright (C) 2016 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 COMPUTER, INC. ``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 COMPUTER, INC. OR
+ * 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"
+
+#if !PLATFORM(IOS) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101100
+
+#import "PlatformUtilities.h"
+#import <_javascript_Core/InitializeThreading.h>
+#import <WebKit/WebView.h>
+#import <WebCore/FrameLoadRequest.h>
+#import <WebCore/MainFrame.h>
+#import <WebCore/Page.h>
+#import <WebCore/PageConfiguration.h>
+#import <WebCore/Document.h>
+#import <WebCore/DocumentLoader.h>
+#import <WebCore/MediaResourceLoader.h>
+#import <WebCore/Settings.h>
+#import <WebCore/SubresourceLoader.h>
+#import <WebCore/WebCoreNSURLSession.h>
+#import <WebCore/ResourceLoader.h>
+#import <wtf/SchedulePair.h>
+
+static bool didLoadMainResource;
+static bool didRecieveResponse;
+static bool didRecieveData;
+static bool didComplete;
+static bool didInvalidate;
+
+static NSURL *documentURL = [[NSBundle mainBundle] URLForResource:@"simple" withExtension:@"html" subdirectory:@"TestWebKitAPI.resources"];
+static NSURL *resourceURL = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"mp4" subdirectory:@"TestWebKitAPI.resources"];
+
+@interface TestNSURLSessionLoaderDelegate : NSObject<WebFrameLoadDelegate>
+@end
+
+@implementation TestNSURLSessionLoaderDelegate
+- (void)webView:(WebView *)sender didCommitLoadForFrame:(WebFrame *)frame
+{
+    UNUSED_PARAM(sender);
+    UNUSED_PARAM(frame);
+    didLoadMainResource = true;
+}
+@end
+
+@interface TestNSURLSessionDataDelegate : NSObject<NSURLSessionDataDelegate>
+@end
+
+@implementation TestNSURLSessionDataDelegate
+- (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(nullable NSError *)error
+{
+    didComplete = true;
+}
+
+- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveResponse:(NSURLResponse *)response completionHandler:(void (^)(NSURLSessionResponseDisposition disposition))completionHandler
+{
+    didRecieveResponse = true;
+    completionHandler(NSURLSessionResponseAllow);
+}
+
+- (void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data
+{
+    didRecieveData = true;
+
+    NSData* directData = [NSData dataWithContentsOfURL:dataTask.originalRequest.URL];
+    NSData* directSubdata = [directData subdataWithRange:NSMakeRange(dataTask.countOfBytesReceived - data.length, data.length)];
+    ASSERT_TRUE([data isEqualToData:directSubdata]);
+}
+
+- (void)URLSession:(NSURLSession *)session didBecomeInvalidWithError:(nullable NSError *)error
+{
+    didInvalidate = true;
+}
+@end
+
+using namespace WebCore;
+
+@interface WebView (WebViewInternalForTesting)
+- (WebCore::Frame*)_mainCoreFrame;
+@end
+
+namespace TestWebKitAPI {
+
+class WebCoreNSURLSessionTest : public testing::Test {
+public:
+    WebView *view { nil };
+    Frame* frame { nullptr };
+    TestNSURLSessionDataDelegate *delegate { nil };
+    RefPtr<MediaResourceLoader> loader;
+
+    virtual void SetUp()
+    {
+#if PLATFORM(IOS)
+        JSC::initializeThreading();
+#endif
+        view = [[WebView alloc] initWithFrame:NSZeroRect];
+        view.frameLoadDelegate = [[[TestNSURLSessionLoaderDelegate alloc] init] autorelease];
+
+        didLoadMainResource = false;
+        view.mainFrameURL = documentURL.absoluteString;
+        TestWebKitAPI::Util::run(&didLoadMainResource);
+
+        delegate = [[TestNSURLSessionDataDelegate alloc] init];
+        frame = [view _mainCoreFrame];
+        loader = adoptRef(new MediaResourceLoader(*frame->document(), emptyString()));
+    }
+
+    virtual void TearDown()
+    {
+        [view release];
+        [delegate release];
+        loader = nullptr;
+    }
+};
+
+TEST_F(WebCoreNSURLSessionTest, BasicOperation)
+{
+    WebCoreNSURLSession* session = [[WebCoreNSURLSession alloc] initWithResourceLoader:*loader delegate:delegate delegateQueue:[NSOperationQueue mainQueue]];
+    didRecieveResponse = false;
+    didRecieveData = false;
+    didComplete = false;
+
+    NSURLSessionDataTask *task = [session dataTaskWithURL:resourceURL];
+    [task resume];
+
+    TestWebKitAPI::Util::run(&didRecieveResponse);
+    TestWebKitAPI::Util::run(&didRecieveData);
+    TestWebKitAPI::Util::run(&didComplete);
+
+    didInvalidate = false;
+
+    task = [session dataTaskWithURL:resourceURL];
+    [task resume];
+    [session finishTasksAndInvalidate];
+
+    TestWebKitAPI::Util::run(&didInvalidate);
+
+    [session release];
+}
+
+TEST_F(WebCoreNSURLSessionTest, InvalidateEmpty)
+{
+    WebCoreNSURLSession* session = [[WebCoreNSURLSession alloc] initWithResourceLoader:*loader delegate:delegate delegateQueue:[NSOperationQueue mainQueue]];
+    didInvalidate = false;
+    [session finishTasksAndInvalidate];
+    TestWebKitAPI::Util::run(&didInvalidate);
+    [session release];
+}
+
+}
+
+#endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to