### GET /streaming/sourceproviders GET {{host}}/streaming/sourceproviders User-Agent: Bose_Lisa/27.0.6 Accept: application/vnd.bose.streaming-v1.2+xml > {% client.test("Request executed successfully", function() { client.assert(response.status === 200, "Response status is not 200"); }); client.test("Response content-type is correct", function() { var type = response.contentType.mimeType; client.assert(type === "application/vnd.bose.streaming-v1.2+xml", "Expected 'application/vnd.bose.streaming-v1.2+xml' but received '" + type + "'"); }); client.test("Response body structure", function() { client.assert(response.body.getElementsByTagName("sourceProviders").length > 0, "Missing 'sourceProviders' root element"); client.assert(response.body.getElementsByTagName("sourceprovider").length > 0, "Missing 'sourceprovider' elements"); }); client.test("Check source providers", function() { var providers = response.body.getElementsByTagName("sourceprovider"); client.assert(providers.length > 0, "No 'sourceprovider' elements found"); var foundSpotify = false; var foundTuneIn = false; for (var i = 0; i < providers.length; i++) { var provider = providers[i]; var id = provider.getAttribute("id"); var nameElement = provider.getElementsByTagName("name")[0]; var name = nameElement ? nameElement.textContent : ""; client.assert(id && id.length > 0, "Source provider at index " + i + " missing or empty 'id' attribute"); client.assert(name && name.length > 0, "Source provider at index " + i + " missing or empty 'name' element"); if (id === "15" && name === "SPOTIFY") { foundSpotify = true; } if (id === "25" && name === "TUNEIN") { foundTuneIn = true; } } client.assert(foundSpotify, "SPOTIFY (id=15) not found"); client.assert(foundTuneIn, "TUNEIN (id=25) not found"); }); %}