diff --git a/FirebaseAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift b/FirebaseAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift index 747b1dc5bea..fe3d96207fc 100644 --- a/FirebaseAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift +++ b/FirebaseAI/Tests/TestApp/Tests/Integration/GenerateContentIntegrationTests.swift @@ -433,22 +433,28 @@ struct GenerateContentIntegrationTests { modelName: ModelNames.gemini2_5_Flash, tools: [.urlContext()] ) - let prompt = """ - Write a one paragraph summary of this blog post: \ - https://developers.googleblog.com/en/introducing-gemma-3-270m/ - """ + let url = "https://developers.googleblog.com/en/introducing-gemma-3-270m/" + let prompt = "Write a one paragraph summary of this blog post: \(url)" - let response = try await model.generateContent(prompt) + // TODO(#15385): Remove `withKnownIssue` when the URL Context tool works consistently using the + // Gemini Developer API. + try await withKnownIssue(isIntermittent: true) { + let response = try await model.generateContent(prompt) - let candidate = try #require(response.candidates.first) - let urlContextMetadata = try #require(candidate.urlContextMetadata) - #expect(urlContextMetadata.urlMetadata.count == 1) - let urlMetadata = try #require(urlContextMetadata.urlMetadata.first) - let retrievedURL = try #require(urlMetadata.retrievedURL) - #expect( - retrievedURL == URL(string: "https://developers.googleblog.com/en/introducing-gemma-3-270m/") - ) - #expect(urlMetadata.retrievalStatus == .success) + let candidate = try #require(response.candidates.first) + let urlContextMetadata = try #require(candidate.urlContextMetadata) + #expect(urlContextMetadata.urlMetadata.count == 1) + let urlMetadata = try #require(urlContextMetadata.urlMetadata.first) + let retrievedURL = try #require(urlMetadata.retrievedURL) + #expect(retrievedURL == URL(string: url)) + #expect(urlMetadata.retrievalStatus == .success) + } when: { + // This issue only impacts the Gemini Developer API (Google AI), Vertex AI is unaffected. + if case .googleAI = config.apiConfig.service { + return true + } + return false + } } @Test(arguments: InstanceConfig.allConfigs)