Skip to content

Commit 774ce1c

Browse files
committed
Tests for seven new mock responses now pass
1 parent 538b890 commit 774ce1c

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

FirebaseAI/Tests/Unit/GenerativeModelGoogleAITests.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,4 +692,25 @@ final class GenerativeModelGoogleAITests: XCTestCase {
692692
let lastResponse = try XCTUnwrap(responses.last)
693693
XCTAssertEqual(lastResponse.text, "text8")
694694
}
695+
696+
func testGenerateContentStream_success_urlContext() async throws {
697+
MockURLProtocol.requestHandler = try GenerativeModelTestUtil.httpRequestHandler(
698+
forResource: "streaming-success-url-context",
699+
withExtension: "txt",
700+
subdirectory: googleAISubdirectory
701+
)
702+
703+
var responses = [GenerateContentResponse]()
704+
let stream = try model.generateContentStream(testPrompt)
705+
for try await response in stream {
706+
responses.append(response)
707+
}
708+
709+
let firstResponse = try XCTUnwrap(responses.first)
710+
let candidate = try XCTUnwrap(firstResponse.candidates.first)
711+
let urlContextMetadata = try XCTUnwrap(candidate.urlContextMetadata)
712+
XCTAssertEqual(urlContextMetadata.urlMetadata.count, 1)
713+
let urlMetadata = try XCTUnwrap(urlContextMetadata.urlMetadata.first)
714+
XCTAssertEqual(urlMetadata.retrievalStatus, .success)
715+
}
695716
}

FirebaseAI/Tests/Unit/GenerativeModelVertexAITests.swift

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -539,6 +539,22 @@ final class GenerativeModelVertexAITests: XCTestCase {
539539
XCTAssertEqual(errorURLMetadata.retrievalStatus, .error)
540540
}
541541

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+
542558
func testGenerateContent_success_image_invalidSafetyRatingsIgnored() async throws {
543559
MockURLProtocol.requestHandler = try GenerativeModelTestUtil.httpRequestHandler(
544560
forResource: "unary-success-image-invalid-safety-ratings",
@@ -1768,6 +1784,28 @@ final class GenerativeModelVertexAITests: XCTestCase {
17681784
XCTAssertEqual(responses, 1)
17691785
}
17701786

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+
17711809
// MARK: - Count Tokens
17721810

17731811
func testCountTokens_succeeds() async throws {

0 commit comments

Comments
 (0)