Skip to content

Commit 73ca46a

Browse files
add tests for blanks as invalid (#351)
1 parent 657c48b commit 73ca46a

File tree

2 files changed

+9
-1
lines changed

2 files changed

+9
-1
lines changed

Sources/Data Model/Audience/SemanticVersion.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ extension SemanticVersion {
6464
var targetPrefix = self
6565
var targetSuffix:ArraySlice<Substring>?
6666

67+
if hasWhiteSpace {
68+
throw OptimizelyError.attributeFormatInvalid
69+
}
70+
6771
if isPreRelease || isBuild {
6872
targetParts = split(separator: isPreRelease ? preReleaseSeperator : buildSeperator)
6973
guard let targetParts = targetParts, targetParts.count > 1 else {
@@ -83,6 +87,10 @@ extension SemanticVersion {
8387
}
8488
return targetedVersionParts
8589
}
90+
91+
var hasWhiteSpace: Bool {
92+
return contains(" ")
93+
}
8694

8795
var isNumber: Bool {
8896
return !isEmpty && rangeOfCharacter(from: CharacterSet.decimalDigits.inverted) == nil

Tests/OptimizelyTests-DataModel/SemanticVersionTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ class SemanticVersionTests: XCTestCase {
165165

166166
func testInvalidAttributes() {
167167
let target = "2.1.0"
168-
let versions = ["-", ".", "..", "+", "+test"]
168+
let versions = ["-", ".", "..", "+", "+test", " ", "2 .3. 0"]
169169
for (_, version) in versions.enumerated() {
170170
XCTAssert(((try? (version.compareVersion(targetedVersion: target)) < 0) == nil))
171171
}

0 commit comments

Comments
 (0)