Merge pull request #34 from hyperoslo/bugfix/cannot-save-file-with-long-URL-key

Bugfix/cannot save file with long URL key
This commit is contained in:
Vadym Markov
2016-04-26 21:54:54 +02:00
6 changed files with 65 additions and 8 deletions
+1
View File
@@ -18,4 +18,5 @@ Pod::Spec.new do |s|
s.tvos.source_files = 'Source/{iOS,Shared}/**/*'
s.frameworks = 'Foundation'
s.dependency 'CryptoSwift'
end
+32 -4
View File
@@ -7,6 +7,9 @@
objects = {
/* Begin PBXBuildFile section */
9ABAE0371CCF8FF7009477CF /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9ABAE0361CCF8FF7009477CF /* CryptoSwift.framework */; };
9AFE68041CCF982800B7C6AC /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFE68031CCF982800B7C6AC /* Quick.framework */; };
9AFE68071CCF994A00B7C6AC /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFE68051CCF986C00B7C6AC /* CryptoSwift.framework */; };
D5291C291C28220B00B702C9 /* UIImage+Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291C0D1C28220B00B702C9 /* UIImage+Cache.swift */; };
D5291C2D1C28220B00B702C9 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291C151C28220B00B702C9 /* Config.swift */; };
D5291C2E1C28220B00B702C9 /* Cachable.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291C171C28220B00B702C9 /* Cachable.swift */; };
@@ -68,7 +71,6 @@
D5291D961C283CFB00B702C9 /* StorageFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291C271C28220B00B702C9 /* StorageFactory.swift */; };
D5291D9A1C283DB300B702C9 /* UIImage+CacheSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291D991C283DB300B702C9 /* UIImage+CacheSpec.swift */; };
D5291D9C1C283DD900B702C9 /* NSImage+CacheSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291D9B1C283DD900B702C9 /* NSImage+CacheSpec.swift */; };
D5291D9D1C283EC000B702C9 /* Quick.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5291CD91C2835D000B702C9 /* Quick.framework */; };
D5291D9E1C283EC000B702C9 /* Nimble.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D5291CDA1C2835D000B702C9 /* Nimble.framework */; };
D5291DA11C28405900B702C9 /* UIImage+CacheTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291DA01C28405900B702C9 /* UIImage+CacheTests.swift */; };
D5291DA31C2841D200B702C9 /* NSImage+CacheTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5291DA21C2841D200B702C9 /* NSImage+CacheTests.swift */; };
@@ -92,6 +94,9 @@
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
9ABAE0361CCF8FF7009477CF /* CryptoSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CryptoSwift.framework; path = Carthage/Build/iOS/CryptoSwift.framework; sourceTree = "<group>"; };
9AFE68031CCF982800B7C6AC /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quick.framework; path = Carthage/Build/Mac/Quick.framework; sourceTree = "<group>"; };
9AFE68051CCF986C00B7C6AC /* CryptoSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CryptoSwift.framework; path = Carthage/Build/Mac/CryptoSwift.framework; sourceTree = "<group>"; };
D5291C0D1C28220B00B702C9 /* UIImage+Cache.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIImage+Cache.swift"; sourceTree = "<group>"; };
D5291C151C28220B00B702C9 /* Config.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = "<group>"; };
D5291C171C28220B00B702C9 /* Cachable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Cachable.swift; sourceTree = "<group>"; };
@@ -111,7 +116,6 @@
D5291C6A1C2827FB00B702C9 /* BasicHybridCache.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BasicHybridCache.swift; sourceTree = "<group>"; };
D5291C6B1C2827FB00B702C9 /* Cache.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Cache.swift; sourceTree = "<group>"; };
D5291C721C28296B00B702C9 /* HybridCache.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HybridCache.swift; sourceTree = "<group>"; };
D5291CD91C2835D000B702C9 /* Quick.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quick.framework; path = Carthage/Build/Mac/Quick.framework; sourceTree = "<group>"; };
D5291CDA1C2835D000B702C9 /* Nimble.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Nimble.framework; path = Carthage/Build/Mac/Nimble.framework; sourceTree = "<group>"; };
D5291CDF1C28374800B702C9 /* SpecHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SpecHelper.swift; sourceTree = "<group>"; };
D5291CE01C28374800B702C9 /* User.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = User.swift; sourceTree = "<group>"; };
@@ -164,6 +168,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9AFE68071CCF994A00B7C6AC /* CryptoSwift.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -171,7 +176,6 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
D5291D9D1C283EC000B702C9 /* Quick.framework in Frameworks */,
D5291D9E1C283EC000B702C9 /* Nimble.framework in Frameworks */,
D5291D6A1C283B5400B702C9 /* Cache.framework in Frameworks */,
);
@@ -181,6 +185,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
9ABAE0371CCF8FF7009477CF /* CryptoSwift.framework in Frameworks */,
9AFE68041CCF982800B7C6AC /* Quick.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -408,7 +414,8 @@
D5291DA51C28454000B702C9 /* Mac */ = {
isa = PBXGroup;
children = (
D5291CD91C2835D000B702C9 /* Quick.framework */,
9AFE68051CCF986C00B7C6AC /* CryptoSwift.framework */,
9AFE68031CCF982800B7C6AC /* Quick.framework */,
D5291CDA1C2835D000B702C9 /* Nimble.framework */,
);
name = Mac;
@@ -417,6 +424,7 @@
D5291DA61C28454800B702C9 /* iOS */ = {
isa = PBXGroup;
children = (
9ABAE0361CCF8FF7009477CF /* CryptoSwift.framework */,
D5DC5A6C1C205C2A003BD79B /* Quick.framework */,
D5DC5A6D1C205C2A003BD79B /* Nimble.framework */,
);
@@ -650,6 +658,7 @@
inputPaths = (
"$(SRCROOT)/Carthage/Build/iOS/Quick.framework",
"$(SRCROOT)/Carthage/Build/iOS/Nimble.framework",
"$(SRCROOT)/Carthage/Build/iOS/CryptoSwift.framework",
);
outputPaths = (
);
@@ -665,6 +674,7 @@
inputPaths = (
"$(SRCROOT)/Carthage/Build/Mac/Quick.framework",
"$(SRCROOT)/Carthage/Build/Mac/Nimble.framework",
"$(SRCROOT)/Carthage/Build/Mac/CryptoSwift.framework",
);
outputPaths = (
);
@@ -815,6 +825,10 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Carthage/Build/Mac",
);
FRAMEWORK_VERSION = A;
INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/Mac/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
@@ -836,6 +850,10 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Carthage/Build/Mac",
);
FRAMEWORK_VERSION = A;
INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/Mac/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
@@ -980,6 +998,11 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Carthage/Build/iOS",
"$(PROJECT_DIR)/Carthage/Build/Mac",
);
INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/iOS/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
@@ -997,6 +1020,11 @@
DYLIB_COMPATIBILITY_VERSION = 1;
DYLIB_CURRENT_VERSION = 1;
DYLIB_INSTALL_NAME_BASE = "@rpath";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Carthage/Build/iOS",
"$(PROJECT_DIR)/Carthage/Build/Mac",
);
INFOPLIST_FILE = "$(SRCROOT)/SupportFiles/iOS/Info.plist";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+1
View File
@@ -0,0 +1 @@
github "krzyzanowskim/CryptoSwift" "master"
+3 -2
View File
@@ -1,2 +1,3 @@
github "Quick/Nimble" "v3.2.0"
github "Quick/Quick" "v0.9.1"
github "krzyzanowskim/CryptoSwift" "3f9ca1c1980fdc8e5c719d48ab81ae421b0497ee"
github "Quick/Nimble" "v4.0.1"
github "Quick/Quick" "v0.9.2"
+14 -1
View File
@@ -1,4 +1,5 @@
import Foundation
import CryptoSwift
public class DiskStorage: StorageAware {
@@ -204,7 +205,19 @@ public class DiskStorage: StorageAware {
// MARK: - Helpers
func fileName(key: String) -> String {
return key.base64()
if let digest = key.dataUsingEncoding(NSUTF8StringEncoding)?.md5() {
var string = ""
var byte: UInt8 = 0
for i in 0 ..< digest.length {
digest.getBytes(&byte, range: NSMakeRange(i, 1))
string += String(format: "%02x", byte)
}
return string
} else {
return key.base64()
}
}
func filePath(key: String) -> String {
+14 -1
View File
@@ -1,5 +1,6 @@
import Quick
import Nimble
import CryptoSwift
@testable import Cache
class DiskStorageSpec: QuickSpec {
@@ -178,7 +179,19 @@ class DiskStorageSpec: QuickSpec {
describe("#fileName") {
it("returns a correct file name") {
expect(storage.fileName(key)).to(equal(key.base64()))
if let digest = key.dataUsingEncoding(NSUTF8StringEncoding)?.md5() {
var string = ""
var byte: UInt8 = 0
for i in 0 ..< digest.length {
digest.getBytes(&byte, range: NSMakeRange(i, 1))
string += String(format: "%02x", byte)
}
expect(storage.fileName(key)).to(equal(string))
} else {
expect(storage.fileName(key)).to(equal(key.base64()))
}
}
}