@@ -611,6 +611,20 @@ final class GenerativeModelTests: XCTestCase {
611
611
XCTAssertEqual ( response. candidates. count, 1 )
612
612
}
613
613
614
+ func testGenerateContent_requestOptions_defaultTimeout( ) async throws {
615
+ let expectedTimeout = 300.0 // Default in timeout in RequestOptions()
616
+ MockURLProtocol
617
+ . requestHandler = try httpRequestHandler (
618
+ forResource: " unary-success-basic-reply-short " ,
619
+ withExtension: " json " ,
620
+ timeout: expectedTimeout
621
+ )
622
+
623
+ let response = try await model. generateContent ( testPrompt)
624
+
625
+ XCTAssertEqual ( response. candidates. count, 1 )
626
+ }
627
+
614
628
// MARK: - Generate Content (Streaming)
615
629
616
630
func testGenerateContentStream_failureInvalidAPIKey( ) async throws {
@@ -967,6 +981,25 @@ final class GenerativeModelTests: XCTestCase {
967
981
XCTAssertEqual ( responses, 1 )
968
982
}
969
983
984
+ func testGenerateContentStream_requestOptions_defaultTimeout( ) async throws {
985
+ let expectedTimeout = 300.0 // Default in timeout in RequestOptions()
986
+ MockURLProtocol
987
+ . requestHandler = try httpRequestHandler (
988
+ forResource: " streaming-success-basic-reply-short " ,
989
+ withExtension: " txt " ,
990
+ timeout: expectedTimeout
991
+ )
992
+
993
+ var responses = 0
994
+ let stream = model. generateContentStream ( testPrompt)
995
+ for try await content in stream {
996
+ XCTAssertNotNil ( content. text)
997
+ responses += 1
998
+ }
999
+
1000
+ XCTAssertEqual ( responses, 1 )
1001
+ }
1002
+
970
1003
// MARK: - Count Tokens
971
1004
972
1005
func testCountTokens_succeeds( ) async throws {
@@ -1019,6 +1052,20 @@ final class GenerativeModelTests: XCTestCase {
1019
1052
XCTAssertEqual ( response. totalTokens, 6 )
1020
1053
}
1021
1054
1055
+ func testCountTokens_requestOptions_defaultTimeout( ) async throws {
1056
+ let expectedTimeout = 300.0
1057
+ MockURLProtocol
1058
+ . requestHandler = try httpRequestHandler (
1059
+ forResource: " success-total-tokens " ,
1060
+ withExtension: " json " ,
1061
+ timeout: expectedTimeout
1062
+ )
1063
+
1064
+ let response = try await model. countTokens ( testPrompt)
1065
+
1066
+ XCTAssertEqual ( response. totalTokens, 6 )
1067
+ }
1068
+
1022
1069
// MARK: - Model Resource Name
1023
1070
1024
1071
func testModelResourceName_noPrefix( ) async throws {
@@ -1067,8 +1114,8 @@ final class GenerativeModelTests: XCTestCase {
1067
1114
private func httpRequestHandler( forResource name: String ,
1068
1115
withExtension ext: String ,
1069
1116
statusCode: Int = 200 ,
1070
- timeout: TimeInterval = URLRequest
1071
- . defaultTimeoutInterval ( ) ) throws -> ( ( URLRequest ) throws -> (
1117
+ timeout: TimeInterval = RequestOptions ( )
1118
+ . timeout ) throws -> ( ( URLRequest ) throws -> (
1072
1119
URLResponse ,
1073
1120
AsyncLineSequence < URL . AsyncBytes > ?
1074
1121
) ) {
0 commit comments