mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-20 23:37:33 +09:00
Dactyloidae iOS initial commit
This commit is contained in:
parent
daa6179d22
commit
7154a0497e
2123 changed files with 197052 additions and 0 deletions
57
mobile/ios/ClientTests/TestFavicons.swift
Normal file
57
mobile/ios/ClientTests/TestFavicons.swift
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
import Foundation
|
||||
import XCTest
|
||||
import Storage
|
||||
import SDWebImage
|
||||
@testable import Client
|
||||
import Shared
|
||||
|
||||
class TestFavicons: ProfileTest {
|
||||
|
||||
fileprivate func addSite(_ favicons: Favicons, url: String, s: Bool = true) {
|
||||
let expectation = self.expectation(description: "Wait for history")
|
||||
let site = Site(url: url, title: "")
|
||||
let icon = Favicon(url: url + "/icon.png", type: IconType.icon)
|
||||
favicons.addFavicon(icon, forSite: site).upon {
|
||||
XCTAssertEqual($0.isSuccess, s, "Icon added \(url)")
|
||||
expectation.fulfill()
|
||||
}
|
||||
self.waitForExpectations(timeout: 100, handler: nil)
|
||||
}
|
||||
|
||||
func testFaviconFetcherParse() {
|
||||
let expectation = self.expectation(description: "Wait for Favicons to be fetched")
|
||||
|
||||
let profile = MockProfile()
|
||||
// I want a site that also has an iOS app so I can get "apple-touch-icon-precomposed" icons as well
|
||||
let url = URL(string: "https://instagram.com")
|
||||
FaviconFetcher.getForURL(url!, profile: profile).uponQueue(DispatchQueue.main) { result in
|
||||
guard let favicons = result.successValue, favicons.count > 0, let url = favicons.first?.url.asURL else {
|
||||
XCTFail("Favicons were not found.")
|
||||
return expectation.fulfill()
|
||||
}
|
||||
XCTAssertGreaterThan(favicons.count, 1, "Instagram should have more than one Favicon.")
|
||||
SDWebImageManager.shared().loadImage(with: url, options: .retryFailed, progress: nil, completed: { (img, _, _, _, _, _) in
|
||||
guard let image = img else {
|
||||
XCTFail("Not a valid URL provided for a favicon.")
|
||||
return expectation.fulfill()
|
||||
}
|
||||
XCTAssertNotEqual(image.size, CGSize(width: 0, height: 0))
|
||||
expectation.fulfill()
|
||||
})
|
||||
|
||||
}
|
||||
self.waitForExpectations(timeout: 3000, handler: nil)
|
||||
}
|
||||
|
||||
func testDefaultFavicons() {
|
||||
let icon = FaviconFetcher.getDefaultIconForURL(url: URL(string: "http://www.google.de")!)
|
||||
XCTAssertNotNil(icon)
|
||||
let craigsListIcon = FaviconFetcher.getDefaultIconForURL(url: URL(string: "http://vancouver.craigslist.ca")!)
|
||||
XCTAssertNotNil(craigsListIcon)
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue