Skip to content

Commit 5963534

Browse files
authored
Codecov update (#15)
* test: Add codecove.yml and Update Unit tests. * [Documentation]: Add Code Of Conduct.md * [Documentation]: Update travis.yml * [Documentation]: Update .travis.yml * Update script of travis.yml * Update testing and travis yml * Update typo * Update typo2 * [CI]: Update travis.yml * [CI]: Update .travis.yml typo * [Documentation]: Code Coverage Badge Update * Fix typo * [Test]: Image Cutting Methods test ImageCutting Method 1. createContainerDirectory() tested 2. UIImage.saveTileOf(size:name:withExtension) tested * [Test]: Update Unit Tests 1. ImageGenergateHelperTests 2. ImageManagerTests 3. THTiledImageContentViewTests Set testing code
1 parent 3f76aa4 commit 5963534

File tree

14 files changed

+287
-59
lines changed

14 files changed

+287
-59
lines changed

THTiledImageView.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'THTiledImageView'
3-
s.version = '0.3'
3+
s.version = '0.3.1'
44
s.summary = 'High Quality Image ScrollView using cropped tiled images.'
55

66
s.description = <<-DESC

THTiledImageView.xcodeproj/project.pbxproj

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
7E0C4F9B1FF7357D00778CED /* THTileImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E0C4F9A1FF7357D00778CED /* THTileImageView.swift */; };
1515
7E0C4F9D1FF73CAB00778CED /* THTiledImageContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E0C4F9C1FF73CAB00778CED /* THTiledImageContentView.swift */; };
1616
7E0C4F9F1FF73F5100778CED /* MyTileImageViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E0C4F9E1FF73F5100778CED /* MyTileImageViewDataSource.swift */; };
17+
7E0CF80D203EDD7C005B503C /* ImageGenergateHelperTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E0CF80C203EDD7C005B503C /* ImageGenergateHelperTests.swift */; };
18+
7E0CF80F203EEBD2005B503C /* ImageManagerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E0CF80E203EEBD2005B503C /* ImageManagerTest.swift */; };
19+
7E0CF811203F01EE005B503C /* THTileImageContentViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E0CF810203F01EE005B503C /* THTileImageContentViewTests.swift */; };
1720
7E10AFEC203179C000263B91 /* THTiledImageViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E10AFEB203179C000263B91 /* THTiledImageViewTests.swift */; };
1821
7E116FB7203DB940003FC907 /* THTiledImageScrollViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E116FB6203DB940003FC907 /* THTiledImageScrollViewTests.swift */; };
1922
7E95FEC6200361E200580A13 /* THTiledImageGenerateHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7E95FEC5200361E200580A13 /* THTiledImageGenerateHelper.swift */; };
@@ -52,6 +55,9 @@
5255
7E0C4F9A1FF7357D00778CED /* THTileImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = THTileImageView.swift; sourceTree = "<group>"; };
5356
7E0C4F9C1FF73CAB00778CED /* THTiledImageContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = THTiledImageContentView.swift; sourceTree = "<group>"; };
5457
7E0C4F9E1FF73F5100778CED /* MyTileImageViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyTileImageViewDataSource.swift; sourceTree = "<group>"; };
58+
7E0CF80C203EDD7C005B503C /* ImageGenergateHelperTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageGenergateHelperTests.swift; sourceTree = "<group>"; };
59+
7E0CF80E203EEBD2005B503C /* ImageManagerTest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageManagerTest.swift; sourceTree = "<group>"; };
60+
7E0CF810203F01EE005B503C /* THTileImageContentViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = THTileImageContentViewTests.swift; sourceTree = "<group>"; };
5561
7E10AFE9203179BF00263B91 /* THTiledImageViewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = THTiledImageViewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
5662
7E10AFEB203179C000263B91 /* THTiledImageViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = THTiledImageViewTests.swift; sourceTree = "<group>"; };
5763
7E10AFED203179C000263B91 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
@@ -126,6 +132,9 @@
126132
children = (
127133
7E10AFEB203179C000263B91 /* THTiledImageViewTests.swift */,
128134
7E116FB6203DB940003FC907 /* THTiledImageScrollViewTests.swift */,
135+
7E0CF80C203EDD7C005B503C /* ImageGenergateHelperTests.swift */,
136+
7E0CF810203F01EE005B503C /* THTileImageContentViewTests.swift */,
137+
7E0CF80E203EEBD2005B503C /* ImageManagerTest.swift */,
129138
7E10AFED203179C000263B91 /* Info.plist */,
130139
);
131140
path = THTiledImageViewTests;
@@ -378,7 +387,10 @@
378387
buildActionMask = 2147483647;
379388
files = (
380389
7E116FB7203DB940003FC907 /* THTiledImageScrollViewTests.swift in Sources */,
390+
7E0CF80D203EDD7C005B503C /* ImageGenergateHelperTests.swift in Sources */,
381391
7E10AFEC203179C000263B91 /* THTiledImageViewTests.swift in Sources */,
392+
7E0CF80F203EEBD2005B503C /* ImageManagerTest.swift in Sources */,
393+
7E0CF811203F01EE005B503C /* THTileImageContentViewTests.swift in Sources */,
382394
);
383395
runOnlyForDeploymentPostprocessing = 0;
384396
};

THTiledImageView.xcodeproj/xcshareddata/xcschemes/THTiledImageViewTests.xcscheme

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,12 @@
1111
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
1212
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
1313
language = ""
14+
<<<<<<< HEAD
15+
shouldUseLaunchSchemeArgsEnv = "YES"
16+
codeCoverageEnabled = "YES">
17+
=======
1418
shouldUseLaunchSchemeArgsEnv = "YES">
19+
>>>>>>> master
1520
<Testables>
1621
<TestableReference
1722
skipped = "NO">
Binary file not shown.

THTiledImageView/THTiledImageView/THImageManager.swift

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import Foundation
1010
import Kingfisher
1111

12-
typealias THImageDownloaderCompletion = (UIImage, URL) -> Void
12+
typealias THImageDownloaderCompletion = (UIImage?, URL?, Error?) -> Void
1313
typealias THImageCacheCompletion = () -> Void
1414

1515
class THImageDownloadManager {
@@ -18,13 +18,12 @@ class THImageDownloadManager {
1818
func downloadEachTiles(path url: URL, completion: @escaping THImageDownloaderCompletion) {
1919
ImageDownloader.default.downloadImage(with: url, retrieveImageTask: nil,
2020
options: [], progressBlock: nil) { (image, error, url, _) in
21-
if let _ = error {
22-
// print(error)
23-
completion(UIImage(), url!)
24-
return
25-
}
26-
guard let image = image, let url = url else { return }
27-
completion(image, url)
21+
if let error = error {
22+
completion(nil, nil, error)
23+
}
24+
25+
guard let image = image, let url = url else { return }
26+
completion(image, url, nil)
2827
}
2928
}
3029
}

THTiledImageView/THTiledImageView/THTileImageView.swift

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,11 +143,16 @@ class THTiledImageView: UIView {
143143
if requestDict[imageKey] == nil {
144144
requestDict.updateValue(true, forKey: imageKey)
145145

146-
THImageDownloadManager.default.downloadEachTiles(path: downloadPath) { image, _ in
147-
THImageCacheManager.default.cacheTiles(image: image, imageIdentifier: imageKey) {
148-
let tile = THTile(tileImage: image, tileRect: tileRect)
149-
self.layer.setNeedsDisplay(tile.tileRect)
146+
THImageDownloadManager.default.downloadEachTiles(path: downloadPath) { image, _, error in
147+
if let error = error {
148+
print(error)
149+
}
150+
if let image = image {
151+
THImageCacheManager.default.cacheTiles(image: image, imageIdentifier: imageKey) {
152+
let tile = THTile(tileImage: image, tileRect: tileRect)
153+
self.layer.setNeedsDisplay(tile.tileRect)
150154

155+
}
151156
}
152157
}
153158
}

THTiledImageView/THTiledImageView/THTiledImageContentView.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ class THTiledImageContentView: UIView {
1414
let tileImageView: THTiledImageView
1515
let backgroundImageView: UIImageView
1616

17-
var dataSource: THTiledImageViewDataSource?
18-
1917
init(tileImageView: THTiledImageView, dataSource: THTiledImageViewDataSource) {
2018
self.tileImageView = tileImageView
2119
self.backgroundImageView = UIImageView(frame: tileImageView.bounds)

THTiledImageView/THTiledImageView/THTiledImageViewDataSource.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ extension THTiledImageViewDataSource {
7373
case 200:
7474
if let data = data, let image = UIImage(data: data) {
7575
self.backgroundImage = image
76-
completionHandler(self.backgroundImage)
76+
completionHandler(image)
7777
}
7878
default:
7979
completionHandler(nil)

THTiledImageView/ViewController.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,6 @@ class ViewController: UIViewController {
7979
}
8080
}
8181
}
82-
83-
print(scrollViewSize)
8482
return scrollViewSize
8583
}
8684
}
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
//
2+
// ImageGenergateHelperTests.swift
3+
// THTiledImageViewTests
4+
//
5+
// Created by 홍창남 on 2018. 2. 22..
6+
// Copyright © 2018년 홍창남. All rights reserved.
7+
//
8+
9+
import XCTest
10+
@testable import THTiledImageView
11+
12+
class ImageGenergateHelperTests: XCTestCase {
13+
14+
var imageExist: Bool = false
15+
16+
let randomString = NSUUID().uuidString
17+
18+
override func tearDown() {
19+
// remove created directory for testing
20+
let cachesPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0] as String
21+
22+
let dirPath = "\(cachesPath)/\(randomString)"
23+
let benchPath = "\(cachesPath)/bench"
24+
25+
do {
26+
try FileManager.default.removeItem(atPath: dirPath)
27+
try FileManager.default.removeItem(atPath: benchPath)
28+
} catch let err {
29+
print(err)
30+
}
31+
32+
super.tearDown()
33+
}
34+
35+
func testDirectoryExists() {
36+
let cachesPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0] as String
37+
38+
let dirPath = "\(cachesPath)/\(randomString)"
39+
40+
FileManager.createContainerDirectory(path: dirPath)
41+
42+
var result = false
43+
if let contents = try? FileManager.default.contentsOfDirectory(atPath: "\(cachesPath)") {
44+
contents.forEach { dir in
45+
if dir == "bench" {
46+
result = true
47+
}
48+
}
49+
}
50+
XCTAssert(result, "directory is not created.")
51+
}
52+
53+
func testCuttingImages() {
54+
let tiles: [CGSize] = [CGSize(width: 1024, height: 1024), CGSize(width: 512, height: 512)]
55+
56+
UIImage.saveTileOf(size: tiles, name: "bench", withExtension: "jpg") { _ in
57+
let cachesPath = NSSearchPathForDirectoriesInDomains(.cachesDirectory, .userDomainMask, true)[0] as String
58+
59+
let path = "\(cachesPath)/bench/1024/" + "bench_1024_1_0_0.jpg"
60+
if FileManager.default.fileExists(atPath: path) {
61+
self.imageExist = true
62+
}
63+
}
64+
65+
let pred = NSPredicate(format: "imageExist == true")
66+
let exp = expectation(for: pred, evaluatedWith: self, handler: nil)
67+
let result = XCTWaiter.wait(for: [exp], timeout: 10.0)
68+
69+
if result == XCTWaiter.Result.completed {
70+
XCTAssert(imageExist, "The call to get the url into another error")
71+
} else {
72+
XCTAssert(false, "The call to cut image into another error")
73+
}
74+
75+
}
76+
}

0 commit comments

Comments
 (0)