mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-03 16:10:20 +00:00
UI test cleanup (#2598)
* Stop running the UI tests on the double localized pseudolanguage * Fix UI tests signalling comms problem because the json key ordering wasn't defined and the messages wouldn't match. * Remove UI tests that are now the same as preview tests (i.e. non flow based, only screen based), fixed the rest so they run on iOS 17.2, the iPhone 15 and iPad 10th gen simulators. * Remove unnecessary gitignore instructions, change UI test snapshot naming convention to be more similar to the unit test ones * Enable derived data and spm checkout caching for UI tests * Switch UI tests back to the perf-only runner, moved the integration tests to the iPhone 15 Pro simulator. * Address PR comments
This commit is contained in:
@@ -1,26 +0,0 @@
|
||||
//
|
||||
// Copyright 2021 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class AnalyticsPromptUITests: XCTestCase {
|
||||
/// Verify that the prompt is displayed correctly.
|
||||
func testAnalyticsPrompt() async throws {
|
||||
let app = Application.launch(.analyticsPrompt)
|
||||
try await app.assertScreenshot(.analyticsPrompt)
|
||||
}
|
||||
}
|
||||
@@ -1,26 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class AnalyticsSettingsScreenUITests: XCTestCase {
|
||||
/// Verify that the analytics option screen is displayed correctly.
|
||||
func testAnalyticsSettingsScreen() async throws {
|
||||
let app = Application.launch(.analyticsSettingsScreen)
|
||||
try await app.assertScreenshot(.analyticsSettingsScreen)
|
||||
}
|
||||
}
|
||||
@@ -19,6 +19,8 @@ import XCTest
|
||||
|
||||
enum Application {
|
||||
static func launch(_ identifier: UITestsScreenIdentifier, disableTimelineAccessibility: Bool = true) -> XCUIApplication {
|
||||
checkEnvironments()
|
||||
|
||||
let app = XCUIApplication()
|
||||
|
||||
var launchEnvironment = [
|
||||
@@ -33,6 +35,22 @@ enum Application {
|
||||
app.launch()
|
||||
return app
|
||||
}
|
||||
|
||||
private static func checkEnvironments() {
|
||||
let requirediPhoneSimulator = "iPhone15,4" // iPhone 15
|
||||
let requirediPadSimulator = "iPad13,18" // iPad (10th generation)
|
||||
let requiredOSVersion = 17
|
||||
|
||||
let osVersion = ProcessInfo().operatingSystemVersion
|
||||
guard osVersion.majorVersion == requiredOSVersion else {
|
||||
fatalError("Switch to iOS \(requiredOSVersion) for these tests.")
|
||||
}
|
||||
|
||||
guard let deviceModel = ProcessInfo().environment["SIMULATOR_MODEL_IDENTIFIER"],
|
||||
deviceModel == requirediPhoneSimulator || deviceModel == requirediPadSimulator else {
|
||||
fatalError("Switch to using \(requirediPhoneSimulator) or \(requirediPadSimulator) for these tests.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
extension XCUIApplication {
|
||||
@@ -46,6 +64,8 @@ extension XCUIApplication {
|
||||
if let step {
|
||||
snapshotName += "-\(step)"
|
||||
}
|
||||
|
||||
snapshotName += "-\(deviceName)-\(localeCode)"
|
||||
|
||||
// Sometimes the CI might be too slow to load the content so let's wait the delay time
|
||||
try await Task.sleep(for: delay)
|
||||
@@ -56,24 +76,21 @@ extension XCUIApplication {
|
||||
snapshot = snapshot.inset(by: insets)
|
||||
}
|
||||
|
||||
let failure = verifySnapshot(matching: snapshot,
|
||||
let failure = verifySnapshot(of: snapshot,
|
||||
as: .image(precision: precision,
|
||||
perceptualPrecision: 0.98,
|
||||
scale: nil),
|
||||
named: snapshotName,
|
||||
testName: testName)
|
||||
|
||||
// use any kind of suffix here to snapshot the same file multiple times and avoid countering on the library side
|
||||
named: "UI",
|
||||
testName: snapshotName)
|
||||
|
||||
if let failure,
|
||||
!failure.contains("No reference was found on disk."),
|
||||
!failure.contains("to test against the newly-recorded snapshot") {
|
||||
XCTFail(failure)
|
||||
}
|
||||
}
|
||||
|
||||
private var testName: String {
|
||||
localeCode + "-" + deviceName
|
||||
}
|
||||
|
||||
|
||||
private var deviceName: String {
|
||||
var name = UIDevice.current.name
|
||||
|
||||
|
||||
@@ -36,8 +36,6 @@ class AuthenticationFlowCoordinatorUITests: XCTestCase {
|
||||
|
||||
// Login Screen: Tap next
|
||||
app.buttons[A11yIdentifiers.loginScreen.continue].tap()
|
||||
|
||||
XCTAssertTrue(app.staticTexts[A11yIdentifiers.analyticsPromptScreen.title].waitForExistence(timeout: 1.0), "The analytics prompt screen should be seen after login")
|
||||
}
|
||||
|
||||
func testLoginWithIncorrectPassword() async throws {
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class AuthenticationStartScreenUITests: XCTestCase {
|
||||
func testInitialStateComponents() async throws {
|
||||
let app = Application.launch(.authenticationStartScreen)
|
||||
try await app.assertScreenshot(.authenticationStartScreen)
|
||||
}
|
||||
}
|
||||
@@ -40,18 +40,9 @@ class BugReportUITests: XCTestCase {
|
||||
XCTAssert(!app.switches[A11yIdentifiers.bugReportScreen.canContact].isOn)
|
||||
try await app.assertScreenshot(.bugReport, step: 3)
|
||||
}
|
||||
|
||||
func testInitialStateComponentsWithScreenshot() async throws {
|
||||
let app = Application.launch(.bugReportWithScreenshot)
|
||||
|
||||
// Initial state with a screenshot attached.
|
||||
XCTAssert(app.images[A11yIdentifiers.bugReportScreen.screenshot].exists)
|
||||
XCTAssert(app.buttons[A11yIdentifiers.bugReportScreen.removeScreenshot].exists)
|
||||
try await app.assertScreenshot(.bugReportWithScreenshot)
|
||||
}
|
||||
}
|
||||
|
||||
extension XCUIElement {
|
||||
private extension XCUIElement {
|
||||
var isOn: Bool {
|
||||
(value as? String) == "1"
|
||||
}
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class CallScreenUITests: XCTestCase { }
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class DeveloperOptionsScreenUITests: XCTestCase { }
|
||||
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class HomeScreenUITests: XCTestCase {
|
||||
func testInitialStateComponents() async throws {
|
||||
let app = Application.launch(.home)
|
||||
try await app.assertScreenshot(.home)
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class InviteUsersScreenUITests: XCTestCase {
|
||||
func testLanding() async throws {
|
||||
let app = Application.launch(.inviteUsers)
|
||||
try await app.assertScreenshot(.inviteUsers)
|
||||
}
|
||||
}
|
||||
@@ -23,17 +23,6 @@ class InvitesScreenUITests: XCTestCase {
|
||||
try await app.assertScreenshot(.invites)
|
||||
}
|
||||
|
||||
func testInvitesWithBadges() async throws {
|
||||
let app = Application.launch(.invitesWithBadges)
|
||||
try await app.assertScreenshot(.invitesWithBadges)
|
||||
}
|
||||
|
||||
func testNoInvites() async throws {
|
||||
let app = Application.launch(.invitesNoInvites)
|
||||
XCTAssertTrue(app.staticTexts[A11yIdentifiers.invitesScreen.noInvites].exists)
|
||||
try await app.assertScreenshot(.invitesNoInvites)
|
||||
}
|
||||
|
||||
func testDeclineInvite() async throws {
|
||||
let app = Application.launch(.invites)
|
||||
let declineButton = app.buttons[A11yIdentifiers.invitesScreen.decline].firstMatch
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class LegalInformationScreenUITests: XCTestCase { }
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class MediaUploadPreviewScreenUITests: XCTestCase { }
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class MessageForwardingScreenUITests: XCTestCase { }
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class NotificationSettingsEditScreenUITests: XCTestCase { }
|
||||
@@ -1,30 +0,0 @@
|
||||
//
|
||||
// Copyright 2023 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class NotificationSettingsScreenUITests: XCTestCase {
|
||||
func testRegularScreen() async throws {
|
||||
let app = Application.launch(.notificationSettingsScreen)
|
||||
try await app.assertScreenshot(.notificationSettingsScreen)
|
||||
}
|
||||
|
||||
func testMismatchConfigurationScreen() async throws {
|
||||
let app = Application.launch(.notificationSettingsScreenMismatchConfiguration)
|
||||
try await app.assertScreenshot(.notificationSettingsScreenMismatchConfiguration)
|
||||
}
|
||||
}
|
||||
@@ -26,15 +26,15 @@ class PollFormScreenUITests: XCTestCase {
|
||||
func testFilledPoll() async throws {
|
||||
let app = Application.launch(.createPoll)
|
||||
let questionTextField = app.textViews[A11yIdentifiers.pollFormScreen.question]
|
||||
questionTextField.coordinate(withNormalizedOffset: .init(dx: 0.5, dy: 0.5)).tap() // Tap isn't registered without the offset.
|
||||
questionTextField.forceTap()
|
||||
questionTextField.typeText("Do you like polls?")
|
||||
|
||||
let option1TextField = app.textViews[A11yIdentifiers.pollFormScreen.optionID(0)]
|
||||
option1TextField.tap()
|
||||
option1TextField.forceTap()
|
||||
option1TextField.typeText("Yes")
|
||||
|
||||
let option2TextField = app.textViews[A11yIdentifiers.pollFormScreen.optionID(1)]
|
||||
option2TextField.tap()
|
||||
option2TextField.forceTap()
|
||||
option2TextField.typeText("No")
|
||||
|
||||
// Dismiss the keyboard
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class ReportContentScreenUITests: XCTestCase {
|
||||
func testInitialStateComponents() async throws {
|
||||
let app = Application.launch(.reportContent)
|
||||
try await app.assertScreenshot(.reportContent, step: 0)
|
||||
}
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class RoomDetailsEditScreenUITests: XCTestCase {
|
||||
func testEditableRoom() async throws {
|
||||
let app = Application.launch(.roomEditDetails)
|
||||
try await app.assertScreenshot(.roomEditDetails)
|
||||
}
|
||||
|
||||
func testReadOnlyRoom() async throws {
|
||||
let app = Application.launch(.roomEditDetailsReadOnly)
|
||||
try await app.assertScreenshot(.roomEditDetailsReadOnly)
|
||||
}
|
||||
}
|
||||
@@ -1,58 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class RoomDetailsScreenUITests: XCTestCase {
|
||||
func testInitialStateComponents() async throws {
|
||||
let app = Application.launch(.roomDetailsScreen)
|
||||
|
||||
XCTAssert(app.staticTexts[A11yIdentifiers.roomDetailsScreen.avatar].exists)
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomDetailsScreen.people].waitForExistence(timeout: 1))
|
||||
try await app.assertScreenshot(.roomDetailsScreen)
|
||||
}
|
||||
|
||||
func testInitialStateComponentsWithRoomAvatar() async throws {
|
||||
let app = Application.launch(.roomDetailsScreenWithRoomAvatar)
|
||||
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomDetailsScreen.avatar].waitForExistence(timeout: 1))
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomDetailsScreen.people].waitForExistence(timeout: 1))
|
||||
try await app.assertScreenshot(.roomDetailsScreenWithRoomAvatar)
|
||||
}
|
||||
|
||||
func testInitialStateComponentsWithEmptyTopic() async throws {
|
||||
let app = Application.launch(.roomDetailsScreenWithEmptyTopic)
|
||||
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomDetailsScreen.addTopic].waitForExistence(timeout: 1))
|
||||
try await app.assertScreenshot(.roomDetailsScreenWithEmptyTopic)
|
||||
}
|
||||
|
||||
func testInitialStateComponentsWithInvite() async throws {
|
||||
let app = Application.launch(.roomDetailsScreenWithInvite)
|
||||
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomDetailsScreen.invite].waitForExistence(timeout: 1))
|
||||
try await app.assertScreenshot(.roomDetailsScreenWithInvite)
|
||||
}
|
||||
|
||||
func testInitialStateComponentsDmDetails() async throws {
|
||||
let app = Application.launch(.roomDetailsScreenDmDetails)
|
||||
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomDetailsScreen.dmAvatar].waitForExistence(timeout: 1))
|
||||
XCTAssertFalse(app.buttons[A11yIdentifiers.roomDetailsScreen.people].exists)
|
||||
try await app.assertScreenshot(.roomDetailsScreenDmDetails)
|
||||
}
|
||||
}
|
||||
@@ -1,44 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class RoomMemberDetailsScreenUITests: XCTestCase {
|
||||
func testInitialStateComponentsForAccountOwner() async throws {
|
||||
let app = Application.launch(.roomMemberDetailsAccountOwner)
|
||||
|
||||
XCTAssertFalse(app.buttons[A11yIdentifiers.roomMemberDetailsScreen.ignore].exists)
|
||||
XCTAssertFalse(app.buttons[A11yIdentifiers.roomMemberDetailsScreen.unignore].exists)
|
||||
try await app.assertScreenshot(.roomMemberDetailsAccountOwner)
|
||||
}
|
||||
|
||||
func testInitialStateComponents() async throws {
|
||||
let app = Application.launch(.roomMemberDetails)
|
||||
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomMemberDetailsScreen.ignore].waitForExistence(timeout: 1))
|
||||
XCTAssertFalse(app.buttons[A11yIdentifiers.roomMemberDetailsScreen.unignore].exists)
|
||||
try await app.assertScreenshot(.roomMemberDetails)
|
||||
}
|
||||
|
||||
func testInitialStateComponentsForIgnoredUser() async throws {
|
||||
let app = Application.launch(.roomMemberDetailsIgnoredUser)
|
||||
|
||||
XCTAssertFalse(app.buttons[A11yIdentifiers.roomMemberDetailsScreen.ignore].exists)
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomMemberDetailsScreen.unignore].waitForExistence(timeout: 1))
|
||||
try await app.assertScreenshot(.roomMemberDetailsIgnoredUser)
|
||||
}
|
||||
}
|
||||
@@ -18,12 +18,6 @@ import XCTest
|
||||
|
||||
@MainActor
|
||||
class RoomMembersListScreenUITests: XCTestCase {
|
||||
func testJoinedMembers() async throws {
|
||||
let app = Application.launch(.roomMembersListScreen)
|
||||
|
||||
try await app.assertScreenshot(.roomMembersListScreen)
|
||||
}
|
||||
|
||||
func testJoinedAndInvitedMembers() async throws {
|
||||
let app = Application.launch(.roomMembersListScreenPendingInvites)
|
||||
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class RoomNotificationSettingsScreenUITests: XCTestCase {
|
||||
func testDefaultSetting() async throws {
|
||||
let app = Application.launch(.roomNotificationSettingsDefaultSetting)
|
||||
XCTAssertFalse(app.switches[A11yIdentifiers.roomNotificationSettingsScreen.allowCustomSetting].isOn)
|
||||
try await app.assertScreenshot(.roomNotificationSettingsDefaultSetting)
|
||||
}
|
||||
|
||||
func testCustomSettings() async throws {
|
||||
let app = Application.launch(.roomNotificationSettingsCustomSetting)
|
||||
XCTAssert(app.switches[A11yIdentifiers.roomNotificationSettingsScreen.allowCustomSetting].isOn)
|
||||
try await app.assertScreenshot(.roomNotificationSettingsCustomSetting)
|
||||
}
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class RoomPollsHistoryScreenUITests: XCTestCase {
|
||||
func testEmptyPollsHistory() async throws {
|
||||
let app = Application.launch(.roomPollsHistoryEmptyLoadMore)
|
||||
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomPollsHistoryScreen.loadMore].waitForExistence(timeout: 1))
|
||||
|
||||
try await app.assertScreenshot(.roomPollsHistoryEmptyLoadMore)
|
||||
}
|
||||
|
||||
func testPollsHistory() async throws {
|
||||
let app = Application.launch(.roomPollsHistoryLoadMore)
|
||||
|
||||
XCTAssert(app.buttons[A11yIdentifiers.roomPollsHistoryScreen.loadMore].waitForExistence(timeout: 1))
|
||||
|
||||
try await app.assertScreenshot(.roomPollsHistoryLoadMore)
|
||||
}
|
||||
}
|
||||
@@ -26,15 +26,6 @@ class RoomScreenUITests: XCTestCase {
|
||||
|
||||
try await app.assertScreenshot(.roomPlainNoAvatar)
|
||||
}
|
||||
|
||||
func testEncryptedWithAvatar() async throws {
|
||||
let app = Application.launch(.roomEncryptedWithAvatar)
|
||||
|
||||
XCTAssert(app.staticTexts[A11yIdentifiers.roomScreen.name].exists)
|
||||
XCTAssert(app.images[A11yIdentifiers.roomScreen.avatar].waitForExistence(timeout: 1))
|
||||
|
||||
try await app.assertScreenshot(.roomEncryptedWithAvatar)
|
||||
}
|
||||
|
||||
func testSmallTimelineLayout() async throws {
|
||||
let app = Application.launch(.roomSmallTimeline)
|
||||
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class SecureBackupKeyBackupScreenUITests: XCTestCase { }
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class SecureBackupLogoutConfirmationScreenUITests: XCTestCase { }
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class SecureBackupRecoveryKeyScreenUITests: XCTestCase { }
|
||||
@@ -1,20 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class SecureBackupScreenUITests: XCTestCase { }
|
||||
@@ -1,30 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class ServerConfirmationScreenUITests: XCTestCase {
|
||||
func testLoginScreen() async throws {
|
||||
let app = Application.launch(.serverConfirmationLogin)
|
||||
try await app.assertScreenshot(.serverConfirmationLogin)
|
||||
}
|
||||
|
||||
func testRegisterScreen() async throws {
|
||||
let app = Application.launch(.serverConfirmationRegister)
|
||||
try await app.assertScreenshot(.serverConfirmationRegister)
|
||||
}
|
||||
}
|
||||
@@ -49,13 +49,4 @@ class ServerSelectionUITests: XCTestCase {
|
||||
try await app.assertScreenshot(.serverSelection, step: 2)
|
||||
XCTAssertFalse(app.buttons[A11yIdentifiers.changeServerScreen.continue].isEnabled, "The continue button should be disabled when there is an error.")
|
||||
}
|
||||
|
||||
func testNonModalPresentation() async throws {
|
||||
// Given the initial server selection screen pushed onto the stack.
|
||||
let app = Application.launch(.serverSelectionNonModal)
|
||||
|
||||
// Then the screen should be tweaked slightly to reflect the change of navigation.
|
||||
try await app.assertScreenshot(.serverSelectionNonModal)
|
||||
XCTAssertFalse(app.buttons[A11yIdentifiers.changeServerScreen.dismiss].exists, "The dismiss button should be hidden when not in modal presentation.")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,8 +51,6 @@ class SessionVerificationUITests: XCTestCase {
|
||||
|
||||
XCTAssert(app.staticTexts[A11yIdentifiers.sessionVerificationScreen.verificationComplete].waitForExistence(timeout: 10.0))
|
||||
try await app.assertScreenshot(.sessionVerification, step: Step.verificationComplete)
|
||||
|
||||
app.buttons[A11yIdentifiers.sessionVerificationScreen.close].tap()
|
||||
}
|
||||
|
||||
func testChallengeDoesNotMatch() async throws {
|
||||
@@ -73,8 +71,6 @@ class SessionVerificationUITests: XCTestCase {
|
||||
|
||||
app.buttons[A11yIdentifiers.sessionVerificationScreen.declineChallenge].tap()
|
||||
try await app.assertScreenshot(.sessionVerification, step: Step.verificationCancelled)
|
||||
|
||||
app.buttons[A11yIdentifiers.sessionVerificationScreen.close].tap()
|
||||
}
|
||||
|
||||
func testSessionVerificationCancelation() async throws {
|
||||
@@ -92,10 +88,5 @@ class SessionVerificationUITests: XCTestCase {
|
||||
|
||||
XCTAssert(app.buttons[A11yIdentifiers.sessionVerificationScreen.acceptChallenge].waitForExistence(timeout: 10.0))
|
||||
try await app.assertScreenshot(.sessionVerification, step: Step.compareEmojis)
|
||||
|
||||
app.buttons[A11yIdentifiers.sessionVerificationScreen.close].tap()
|
||||
try await app.assertScreenshot(.sessionVerification, step: Step.verificationCancelled)
|
||||
|
||||
app.buttons[A11yIdentifiers.sessionVerificationScreen.close].tap()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class SettingsScreenUITests: XCTestCase {
|
||||
func testInitialStateComponents() async throws {
|
||||
let app = Application.launch(.settings)
|
||||
try await app.assertScreenshot(.settings)
|
||||
}
|
||||
}
|
||||
@@ -1,42 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class SoftLogoutUITests: XCTestCase {
|
||||
var app: XCUIApplication!
|
||||
|
||||
@MainActor
|
||||
override func setUp() async throws {
|
||||
app = nil
|
||||
}
|
||||
|
||||
func testInitialState() async throws {
|
||||
app = Application.launch(.softLogout)
|
||||
|
||||
XCTAssertTrue(app.staticTexts[A11yIdentifiers.softLogoutScreen.title].exists, "The title should be shown.")
|
||||
XCTAssertTrue(app.staticTexts[A11yIdentifiers.softLogoutScreen.message].exists, "The message 1 should be shown.")
|
||||
XCTAssertTrue(app.staticTexts[A11yIdentifiers.softLogoutScreen.clearDataTitle].exists, "The clear data title should be shown.")
|
||||
XCTAssertTrue(app.staticTexts[A11yIdentifiers.softLogoutScreen.clearDataMessage].exists, "The clear data message should be shown.")
|
||||
XCTAssertTrue(app.secureTextFields[A11yIdentifiers.softLogoutScreen.password].exists, "The password text field should be shown.")
|
||||
XCTAssertTrue(app.buttons[A11yIdentifiers.softLogoutScreen.next].exists, "The next button should be shown.")
|
||||
XCTAssertTrue(app.buttons[A11yIdentifiers.softLogoutScreen.forgotPassword].exists, "The forgot password button should be shown.")
|
||||
XCTAssertTrue(app.buttons[A11yIdentifiers.softLogoutScreen.clearData].exists, "The clear data button should be shown.")
|
||||
|
||||
try await app.assertScreenshot(.softLogout)
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
//
|
||||
// Copyright 2022 New Vector Ltd
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
@MainActor
|
||||
class WaitlistScreenUITests: XCTestCase {
|
||||
func testWaitingState() async throws {
|
||||
let app = Application.launch(.waitlist)
|
||||
try await app.assertScreenshot(.waitlist)
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:985a32a8c09e4c4743fa1df38f7929d166c845101cdf6dc42673297de2ff9ccd
|
||||
size 1297240
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:10f4b586e2c65793dce21bf7a39a8de9eb6e4e343c9ac6c0bf3cbd0dbdef22bc
|
||||
size 948002
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3b97c28098ab3c2767259036323b441eea5eaba8c5cfe8c07b7a9344cfde0e0a
|
||||
size 107155
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ac234a621cd49620ebf3556383029c31b8df4e7f8eb0760fc8bb4138b18c5e82
|
||||
size 119243
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fea7bd6f7e0157e97b2dfcfd4880f436c674d9033ae2e092c43a3cce47157977
|
||||
size 108328
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ab044057eac0d4b8d1461374ab2192af0897e58efedc216f775b5572e7f3d5ea
|
||||
size 120324
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5774ee38f9485f598a44e0179f342c4545147906c81dd61b9c38baa228c4d715
|
||||
size 245208
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b058a219396efea34311df04c53480ebd6efc77882aece4bf384a92844b0de6a
|
||||
size 387177
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dc2860c28f52e0b81954dd2f340f685d419d3e64dab2b5b22d67ffaa1167595b
|
||||
size 118917
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4e733a3e34ad883d23ced9f6f7002d79ded0f1a2831f487f67ce95f41c790f2a
|
||||
size 134493
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:76afd660423ad6e16d5f489f253bd6f02c3c373369251f8ddbed18de85408563
|
||||
size 64852
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7005a049ae9f492ccfec1918d4ff73e349c7c801e531436c63729acb7d6e6c32
|
||||
size 57132
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:aaebaa5ba4875c14c4463f648453ac5eb93d6e5c0ffff0316b4e6e18dc917759
|
||||
size 125702
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cecd870c0baffb415d31a5ad1219ed5a6df8cc142d7b3c157848fc849240ac37
|
||||
size 96598
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:29e2303c0874b96078a1c72949c6510a88d97fc97f70762c85700639749edac6
|
||||
size 125382
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6ccdf5b9c4d40ee14717215c18b568c0d347f12a8e9e3859375a7a183f4112b9
|
||||
size 96270
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c2684e60cabab2f325fa8bc1e8d3e3e439add5430b4372bfe982561d17d3eac4
|
||||
size 138184
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2297bd3166f13e83470754d0b2243d16bfa5815e267c0b43a19fc06db4197e2d
|
||||
size 93888
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2dacead149de65e74fc44b308ce2ce0b97c5c442b013910da155fa6b128928b3
|
||||
size 82353
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:34bddc89446a55313c707c45c901d76ca670ddeb52a47455a8b462383416a9b7
|
||||
size 83394
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fbe7c3bb82ea7d29a0ac4a7615db8b7f5e1409b5199653c390d07f1e0d0b31c1
|
||||
size 142796
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:02cc6cf93c35cd66d8dfaa758be8c15b35a405993d5a5b18a3e4d991c2943e42
|
||||
size 142394
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:76afd660423ad6e16d5f489f253bd6f02c3c373369251f8ddbed18de85408563
|
||||
size 64852
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a7e03a28552e7377492817fd9f06918582d6b05ff2b23cb208d726f5e30e19cc
|
||||
size 56207
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6bb737a0d2b01dc485f2446a37cdfcf02e9d6c55b5eaf22273b8c1a954cafd6e
|
||||
size 90416
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:50ae60a5eb84ee7b35f8be98ce9f560f64c61803fe86e7fd331f9b21efe0a3bd
|
||||
size 91609
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c36a3585f6489ee6def7e14d8129425e725d3632062d4b5c57150d1d50b9cbb7
|
||||
size 90065
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fe438546e03195e81286c9e1d1cca2dceec61ac7afcac3b231949adaee61e5f3
|
||||
size 91293
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cd30e6a82b3b0c0b5061139ad5cad51b0124a588a2bac5c37755c0d51a72050c
|
||||
size 96423
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:bf5539fc00cbceae4c2e27227d7e9daa951c224861f12eee7d098d80ef04c364
|
||||
size 93442
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:abce176e4bf57b6b0aca2969a2f46675d5035d26ac975c7892e7ae9b26ba3827
|
||||
size 112269
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b810dc56cb0b425f5da8b4ac3d30174ced03de8af3294929da1c6211a1d9b2e5
|
||||
size 77122
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0a33f016455e67ff35b96397a3d06e27bf808d6134338730f09d4665f051d2a1
|
||||
size 85541
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ec22582ef3f19a2830baa9084507b98b9cfd00fd7c4ddc892a86f533dd921fd0
|
||||
size 88406
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3d518ea2480d228493d083b4818cd472f7b5d62bfe03ade4dc35b9ace5486924
|
||||
size 136714
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:975c4e0a3ab5c1d872593840beaf796d9830909a50107ae7c7e2e0c81155b50a
|
||||
size 172448
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:330f7ae4f3c6d771c91bf4bdc3a119a3ef694f1c7392b0445ed8772e2da89c67
|
||||
size 204376
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a53780ca00fdaf8e4e17df95dc15690bf06bc8d3f048086de6ecd5ea2d8ebde0
|
||||
size 195913
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c439f48591ea77ac9e0cc9258eb258ba37f1ec196b6f8838106e9a073fe9a36b
|
||||
size 208416
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b2b016c9771059f877be7d047763f903fbed45b266fe45929299d0b85b211913
|
||||
size 201273
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6447671f7cfd17d4d01260e67f6770aaa5f00a67c5fae9fc158829289fa0314a
|
||||
size 93714
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:61d392b6ca3dfc9ba284eb116e6fe89abdfeedac6c07f002043f90c4ac84b519
|
||||
size 103354
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:58292c1d9a68bd5971fd96c1c9c0145e1938383fc51f98c4831db41cb310d8a2
|
||||
size 198024
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a0bbe1b3187af8bccef12d15dd89e4aa4529d047a77b516750052a863645fefa
|
||||
size 310986
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:92678bbd82c099ef562933fb106c22c0416ea8fb7bd4f36e62db0ec09fc80c80
|
||||
size 100325
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b79b01da90a0d7ce3a5d6c1dc6de6d395084176de3e55fb88dc9f3e54bcae942
|
||||
size 113630
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0f3849e4c3756976f3a618f5e865abbf3541222785b40c8da614c788c83cb4d9
|
||||
size 139468
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:3b2d5bc69c3f0391f9981acb4f01bc327e4bf3a03a0a004185b343b725201b96
|
||||
size 177408
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:86df341a29d0b0f1a284cc28f280d6c54d8d539f209270cf3fcc5e0b3b3da613
|
||||
size 143371
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dd4e597b19ea7d5132e91427ec09ec980f4a485aea58f219a560c82003280e0a
|
||||
size 182727
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:86b80fb5bb11af1953261fcbe366b85d5d6486e6860884f546a8541212cda0f1
|
||||
size 122770
|
||||
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:49d38ecb60a832ba39029a4e8f211439aa4c3948112fbdfd51e71538bb1d0fd1
|
||||
size 155107
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:74a4010c19646147435adececd6b9658e5c311d65567680974531260d2af54a1
|
||||
size 110073
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b19e5d596dde73a4e677f422bdf6b42edd9cfefe81ac0d7f49760dba63512587
|
||||
size 77669
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:77a7bd7433e4c8f1c4af5ee0fc7572cc21019000b6e04ea7ce07e185a21af273
|
||||
size 1299310
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5ea38cf925c1ecb6f681f70f9e69261e04458f315037c826608c62827b4d4a43
|
||||
size 100758
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f4b9b5472f7c7405f57edc584676201fbcd47ad065ec76e793a9ab62686485d7
|
||||
size 101990
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8d58a22f5e6181851fb781fa3adc0b8c0cace95485cd1a0ad4c44ce0b443bc36
|
||||
size 243400
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a9d546ca838aaa1815144156bb85637b47954629a2a71932de67b1164574a164
|
||||
size 112431
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:32439e9c58f761ed427cc82e72b493d2d50dadeb918a5a114c8f4346090c21fb
|
||||
size 58069
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fa4855d3e48bf5600c9673f030bf3dfec98db3d9bb97bb860b5aaab5a51ae21d
|
||||
size 113161
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:83f0b666476f1fc9eb85bafa42ce9ed3109d8e1f24dd03f8f4f2ccfbf75e8642
|
||||
size 112805
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0ae810d0e6d12564f8be12c0304be9bbf088d4e466de7cc4edcf1b74ebc02c81
|
||||
size 118359
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:846c772f6cca4a574636a6dc5d388f7490179ec5cbba50db9a625e55dde69a95
|
||||
size 75237
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e8c7e0c946e64048b3b270f4adaf2bfe635aa432dbd26da70f77f751d4ab2092
|
||||
size 128411
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user