This commit is contained in:
David Roman 2023-05-31 22:46:58 +01:00
parent bc6d83d716
commit 4b042303aa
No known key found for this signature in database
GPG Key ID: 7058646EEFCB70A7
3 changed files with 92 additions and 0 deletions

View File

@ -0,0 +1,39 @@
import SwiftUI
// MARK: SwiftUI.ProgressView().progressViewStyle(.circular)
public struct ProgressViewWithCircularStyleType: IntrospectableViewType {
public enum Style {
case circular
}
}
extension IntrospectableViewType where Self == ProgressViewWithCircularStyleType {
public static func progressView(style: Self.Style) -> Self { .init() }
}
#if canImport(UIKit)
extension iOSViewVersion<ProgressViewWithCircularStyleType, UIActivityIndicatorView> {
@available(*, unavailable, message: ".progressViewStyle(.circular) isn't available on iOS 13")
public static let v13 = Self(for: .v13)
public static let v14 = Self(for: .v14)
public static let v15 = Self(for: .v15)
public static let v16 = Self(for: .v16)
}
extension tvOSViewVersion<ProgressViewWithCircularStyleType, UIActivityIndicatorView> {
@available(*, unavailable, message: ".progressViewStyle(.circular) isn't available on tvOS 13")
public static let v13 = Self(for: .v13)
public static let v14 = Self(for: .v14)
public static let v15 = Self(for: .v15)
public static let v16 = Self(for: .v16)
}
#elseif canImport(AppKit)
extension macOSViewVersion<ProgressViewWithCircularStyleType, NSProgressIndicator> {
@available(*, unavailable, message: ".progressViewStyle(.circular) isn't available on macOS 10.15")
public static let v10_15 = Self(for: .v10_15)
public static let v11 = Self(for: .v11)
public static let v12 = Self(for: .v12)
public static let v13 = Self(for: .v13)
}
#endif

View File

@ -27,6 +27,7 @@
D57506962A27F0E200A628E4 /* DatePickerWithCompactFieldStyleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57506952A27F0E200A628E4 /* DatePickerWithCompactFieldStyleTests.swift */; };
D57506982A27F32800A628E4 /* DatePickerWithGraphicalStyleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57506972A27F32800A628E4 /* DatePickerWithGraphicalStyleTests.swift */; };
D575069A2A27F48D00A628E4 /* DatePickerWithFieldStyleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D57506992A27F48D00A628E4 /* DatePickerWithFieldStyleTests.swift */; };
D575069C2A27F68700A628E4 /* ProgressViewWithCircularStyleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D575069B2A27F68700A628E4 /* ProgressViewWithCircularStyleTests.swift */; };
D58119C42A211B8A0081F853 /* ListCellTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D58119C32A211B8A0081F853 /* ListCellTests.swift */; };
D58119C62A227E930081F853 /* ViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D58119C52A227E930081F853 /* ViewTests.swift */; };
D58119C82A22AC130081F853 /* ToggleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D58119C72A22AC130081F853 /* ToggleTests.swift */; };
@ -83,6 +84,7 @@
D57506952A27F0E200A628E4 /* DatePickerWithCompactFieldStyleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerWithCompactFieldStyleTests.swift; sourceTree = "<group>"; };
D57506972A27F32800A628E4 /* DatePickerWithGraphicalStyleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerWithGraphicalStyleTests.swift; sourceTree = "<group>"; };
D57506992A27F48D00A628E4 /* DatePickerWithFieldStyleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerWithFieldStyleTests.swift; sourceTree = "<group>"; };
D575069B2A27F68700A628E4 /* ProgressViewWithCircularStyleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProgressViewWithCircularStyleTests.swift; sourceTree = "<group>"; };
D58119C32A211B8A0081F853 /* ListCellTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListCellTests.swift; sourceTree = "<group>"; };
D58119C52A227E930081F853 /* ViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewTests.swift; sourceTree = "<group>"; };
D58119C72A22AC130081F853 /* ToggleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleTests.swift; sourceTree = "<group>"; };
@ -156,6 +158,7 @@
D57506792A27BF6C00A628E4 /* PickerWithMenuStyleTests.swift */,
D57506772A27BBBD00A628E4 /* PickerWithSegmentedStyleTests.swift */,
D58119D52A23AED70081F853 /* PickerWithWheelStyleTests.swift */,
D575069B2A27F68700A628E4 /* ProgressViewWithCircularStyleTests.swift */,
D50FFE8D2A17E2A400C32641 /* ScrollViewTests.swift */,
D58119CF2A23A62C0081F853 /* SliderTests.swift */,
D58119D12A23A77C0081F853 /* StepperTests.swift */,
@ -366,6 +369,7 @@
D58119C42A211B8A0081F853 /* ListCellTests.swift in Sources */,
D58119C62A227E930081F853 /* ViewTests.swift in Sources */,
D575067E2A27C43400A628E4 /* ListWithGroupedStyleTests.swift in Sources */,
D575069C2A27F68700A628E4 /* ProgressViewWithCircularStyleTests.swift in Sources */,
D5F0BE6929C0DC4900AD95AB /* IntrospectTests.swift in Sources */,
D58119D62A23AED70081F853 /* PickerWithWheelStyleTests.swift in Sources */,
D5B67B842A0D318F007D5D9B /* TextFieldTests.swift in Sources */,

View File

@ -0,0 +1,49 @@
import SwiftUI
import SwiftUIIntrospect
import XCTest
final class ProgressViewWithCircularStyleTests: XCTestCase {
#if canImport(UIKit)
typealias PlatformProgressViewWithCircularStyle = UIActivityIndicatorView
#elseif canImport(AppKit)
typealias PlatformProgressViewWithCircularStyle = NSProgressIndicator
#endif
func testProgressViewWithCircularStyle() throws {
guard #available(iOS 14, tvOS 14, macOS 11, *) else {
throw XCTSkip()
}
XCTAssertViewIntrospection(of: PlatformProgressViewWithCircularStyle.self) { spies in
let spy0 = spies[0]
let spy1 = spies[1]
let spy2 = spies[2]
VStack {
ProgressView()
.progressViewStyle(.circular)
#if os(iOS) || os(tvOS)
.introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16), .tvOS(.v14, .v15, .v16), customize: spy0)
#elseif os(macOS)
.introspect(.progressView(style: .circular), on: .macOS(.v11, .v12, .v13), customize: spy0)
#endif
ProgressView()
.progressViewStyle(.circular)
#if os(iOS) || os(tvOS)
.introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16), .tvOS(.v14, .v15, .v16), customize: spy1)
#elseif os(macOS)
.introspect(.progressView(style: .circular), on: .macOS(.v11, .v12, .v13), customize: spy1)
#endif
ProgressView()
.progressViewStyle(.circular)
#if os(iOS) || os(tvOS)
.introspect(.progressView(style: .circular), on: .iOS(.v14, .v15, .v16), .tvOS(.v14, .v15, .v16), customize: spy2)
#elseif os(macOS)
.introspect(.progressView(style: .circular), on: .macOS(.v11, .v12, .v13), customize: spy2)
#endif
}
}
}
}