| // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors |
| // Licensed under Apache License v2.0 with Runtime Library Exception |
| // |
| // See https://swift.org/LICENSE.txt for license information |
| // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors |
| // |
| //===----------------------------------------------------------------------===// |
| |
| // RUN: %target-run-simple-swift |
| // REQUIRES: executable_test |
| // REQUIRES: objc_interop |
| |
| import StdlibUnittest |
| |
| import Foundation |
| |
| var tests = TestSuite("NSItemProvider") |
| |
| if #available(OSX 10.13, iOS 11.0, watchOS 4.0, tvOS 11.0, *) { |
| |
| tests.test("overlay") { |
| let itemProvider = NSItemProvider() |
| |
| let string = "Hello" |
| let url = URL(string: "https://www.apple.com") |
| |
| itemProvider.registerObject(ofClass: String.self, visibility: .all) { |
| (completionBlock) in |
| completionBlock(string, nil) |
| return nil |
| } |
| |
| itemProvider.registerObject(ofClass: URL.self, visibility: .all) { |
| (completionBlock) in |
| completionBlock(url, nil) |
| return nil |
| } |
| |
| expectTrue(itemProvider.canLoadObject(ofClass: String.self)) |
| expectTrue(itemProvider.canLoadObject(ofClass: URL.self)) |
| |
| // let expectLoadString = expectation("loadString") |
| _ = itemProvider.loadObject(ofClass: String.self) { |
| (string, error) in |
| expectNotNil(string) |
| expectNil(error) |
| // expectLoadString.fulfill() |
| } |
| |
| // let expectLoadURL = expectation("loadURL") |
| _ = itemProvider.loadObject(ofClass: String.self) { |
| (url, error) in |
| expectNotNil(url) |
| expectNil(error) |
| // expectLoadURL.fulfill() |
| } |
| |
| // wait(for: [expectLoadString, expectLoadURL], 1.0) |
| } |
| } |
| |
| runAllTests() |