@@ -539,6 +539,22 @@ final class GenerativeModelVertexAITests: XCTestCase {
539
539
XCTAssertEqual ( errorURLMetadata. retrievalStatus, . error)
540
540
}
541
541
542
+ func testGenerateContent_success_urlContext_missingRetrievedURL( ) async throws {
543
+ MockURLProtocol . requestHandler = try GenerativeModelTestUtil . httpRequestHandler (
544
+ forResource: " unary-success-url-context-missing-retrievedurl " ,
545
+ withExtension: " json " ,
546
+ subdirectory: vertexSubdirectory
547
+ )
548
+
549
+ let response = try await model. generateContent ( testPrompt)
550
+
551
+ let candidate = try XCTUnwrap ( response. candidates. first)
552
+ let urlContextMetadata = try XCTUnwrap ( candidate. urlContextMetadata)
553
+ let urlMetadata = try XCTUnwrap ( urlContextMetadata. urlMetadata. first)
554
+ XCTAssertEqual ( urlMetadata. retrievedURL? . absoluteString, " https://example.com/8 " )
555
+ XCTAssertEqual ( urlMetadata. retrievalStatus, . error)
556
+ }
557
+
542
558
func testGenerateContent_success_image_invalidSafetyRatingsIgnored( ) async throws {
543
559
MockURLProtocol . requestHandler = try GenerativeModelTestUtil . httpRequestHandler (
544
560
forResource: " unary-success-image-invalid-safety-ratings " ,
@@ -1768,6 +1784,28 @@ final class GenerativeModelVertexAITests: XCTestCase {
1768
1784
XCTAssertEqual ( responses, 1 )
1769
1785
}
1770
1786
1787
+ func testGenerateContentStream_success_urlContext( ) async throws {
1788
+ MockURLProtocol . requestHandler = try GenerativeModelTestUtil . httpRequestHandler (
1789
+ forResource: " streaming-success-url-context " ,
1790
+ withExtension: " txt " ,
1791
+ subdirectory: vertexSubdirectory
1792
+ )
1793
+
1794
+ var responses = [ GenerateContentResponse] ( )
1795
+ let stream = try model. generateContentStream ( testPrompt)
1796
+ for try await response in stream {
1797
+ responses. append ( response)
1798
+ }
1799
+
1800
+ let firstResponse = try XCTUnwrap ( responses. first)
1801
+ let candidate = try XCTUnwrap ( firstResponse. candidates. first)
1802
+ let urlContextMetadata = try XCTUnwrap ( candidate. urlContextMetadata)
1803
+ XCTAssertEqual ( urlContextMetadata. urlMetadata. count, 1 )
1804
+ let urlMetadata = try XCTUnwrap ( urlContextMetadata. urlMetadata. first)
1805
+ XCTAssertEqual ( urlMetadata. retrievedURL? . absoluteString, " https://google.com " )
1806
+ XCTAssertEqual ( urlMetadata. retrievalStatus, . success)
1807
+ }
1808
+
1771
1809
// MARK: - Count Tokens
1772
1810
1773
1811
func testCountTokens_succeeds( ) async throws {
0 commit comments