Skip to content

Commit

Permalink
Merge branch 'make-custom-list-names-be-case-sensitive-ios-655'
Browse files Browse the repository at this point in the history
  • Loading branch information
buggmagnet committed Apr 30, 2024
2 parents d9e8e57 + 6c748d5 commit 31bcf20
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 15 deletions.
2 changes: 1 addition & 1 deletion ios/MullvadSettings/CustomListRepository.swift
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public struct CustomListRepository: CustomListRepositoryProtocol {
public func save(list: CustomList) throws {
var lists = fetchAll()

if let listWithSameName = lists.first(where: { $0.name.caseInsensitiveCompare(list.name) == .orderedSame }),
if let listWithSameName = lists.first(where: { $0.name.compare(list.name) == .orderedSame }),
listWithSameName.id != list.id {
throw CustomRelayListError.duplicateName
} else if let index = lists.firstIndex(where: { $0.id == list.id }) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ struct CustomListLocationNodeBuilder {
var customListLocationNode: CustomListLocationNode {
let listNode = CustomListLocationNode(
name: customList.name,
code: customList.name.lowercased(),
code: customList.name,
locations: customList.locations,
isActive: !customList.locations.isEmpty,
customList: customList
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,11 +30,13 @@ class CustomListRepositoryTests: XCTestCase {

func testFailedAddingDuplicateCustomList() throws {
let item1 = CustomList(name: "Netflix", locations: [])
let item2 = CustomList(name: "Netflix", locations: [])
let item2 = CustomList(name: "netflix", locations: [])
let item3 = CustomList(name: "Netflix", locations: [])

try XCTAssertNoThrow(repository.save(list: item1))
try XCTAssertNoThrow(repository.save(list: item2))

XCTAssertThrowsError(try repository.save(list: item2)) { error in
XCTAssertThrowsError(try repository.save(list: item3)) { error in
XCTAssertEqual(error as? CustomRelayListError, CustomRelayListError.duplicateName)
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@ class CustomListsDataSourceTests: XCTestCase {
let nodes = dataSource.nodes

let netflixNode = try XCTUnwrap(nodes.first(where: { $0.name == "Netflix" }))
XCTAssertNotNil(netflixNode.descendantNodeFor(codes: ["netflix", "es1-wireguard"]))
XCTAssertNotNil(netflixNode.descendantNodeFor(codes: ["netflix", "se"]))
XCTAssertNotNil(netflixNode.descendantNodeFor(codes: ["netflix", "us", "dal"]))
XCTAssertNotNil(netflixNode.descendantNodeFor(codes: ["Netflix", "es1-wireguard"]))
XCTAssertNotNil(netflixNode.descendantNodeFor(codes: ["Netflix", "se"]))
XCTAssertNotNil(netflixNode.descendantNodeFor(codes: ["Netflix", "us", "dal"]))

let youtubeNode = try XCTUnwrap(nodes.first(where: { $0.name == "Youtube" }))
XCTAssertNotNil(youtubeNode.descendantNodeFor(codes: ["youtube", "se2-wireguard"]))
XCTAssertNotNil(youtubeNode.descendantNodeFor(codes: ["youtube", "us", "dal"]))
XCTAssertNotNil(youtubeNode.descendantNodeFor(codes: ["Youtube", "se2-wireguard"]))
XCTAssertNotNil(youtubeNode.descendantNodeFor(codes: ["Youtube", "us", "dal"]))
}

func testParents() throws {
let listNode = try XCTUnwrap(dataSource.nodes.first(where: { $0.name == "Netflix" }))
let countryNode = try XCTUnwrap(listNode.descendantNodeFor(codes: ["netflix-se"]))
let cityNode = try XCTUnwrap(listNode.descendantNodeFor(codes: ["netflix-se-got"]))
let hostNode = try XCTUnwrap(listNode.descendantNodeFor(codes: ["netflix-se10-wireguard"]))
let countryNode = try XCTUnwrap(listNode.descendantNodeFor(codes: ["Netflix", "se"]))
let cityNode = try XCTUnwrap(listNode.descendantNodeFor(codes: ["Netflix", "se", "got"]))
let hostNode = try XCTUnwrap(listNode.descendantNodeFor(codes: ["Netflix-se10-wireguard"]))

XCTAssertNil(listNode.parent)
XCTAssertEqual(countryNode.parent, listNode)
Expand All @@ -48,8 +48,8 @@ class CustomListsDataSourceTests: XCTestCase {
let nodes = dataSource.search(by: "got")
let rootNode = RootLocationNode(children: nodes)

XCTAssertTrue(rootNode.descendantNodeFor(codes: ["netflix", "se", "got"])?.isHiddenFromSearch == false)
XCTAssertTrue(rootNode.descendantNodeFor(codes: ["netflix", "se", "sto"])?.isHiddenFromSearch == true)
XCTAssertTrue(rootNode.descendantNodeFor(codes: ["Netflix", "se", "got"])?.isHiddenFromSearch == false)
XCTAssertTrue(rootNode.descendantNodeFor(codes: ["Netflix", "se", "sto"])?.isHiddenFromSearch == true)
}

func testSearchWithEmptyText() throws {
Expand All @@ -66,7 +66,7 @@ class CustomListsDataSourceTests: XCTestCase {
let relays = UserSelectedRelays(locations: [.hostname("es", "mad", "es1-wireguard")], customListSelection: nil)

let nodeByLocations = dataSource.node(by: relays, for: customLists.first!)
let nodeByCode = dataSource.nodes.first?.descendantNodeFor(codes: ["netflix", "es1-wireguard"])
let nodeByCode = dataSource.nodes.first?.descendantNodeFor(codes: ["Netflix", "es1-wireguard"])

XCTAssertEqual(nodeByLocations, nodeByCode)
}
Expand Down

0 comments on commit 31bcf20

Please sign in to comment.