use chrome_for_testing::api::channel::Channel;
use chrome_for_testing::api::known_good_versions::KnownGoodVersions;
use chrome_for_testing::api::last_known_good_versions::LastKnownGoodVersions;
use chrome_for_testing::api::platform::Platform;
use chrome_for_testing::error::Error;
#[tokio::test]
async fn test_last_known_good_versions() -> Result<(), Error> {
let client = reqwest::Client::new();
let versions = LastKnownGoodVersions::fetch(client).await?;
if let Some(stable) = versions.channels.get(&Channel::Stable) {
println!("Latest stable version: {}", stable.version);
for download in &stable.downloads.chrome {
println!(
"Available for platform '{}' at: {}",
download.platform, download.url
);
}
}
Ok(())
}
#[tokio::test]
async fn test_known_good_versions() -> Result<(), Error> {
let client = reqwest::Client::new();
let versions = KnownGoodVersions::fetch(client).await?;
println!("Found {} Chrome versions", versions.versions.len());
let target_version = "131.0.6778.204";
if let Some(version) = versions
.versions
.iter()
.find(|v| v.version.to_string() == target_version)
{
println!(
"Found version {}: revision {}",
version.version, version.revision
);
let current_platform = Platform::detect().expect("Running on supported platform.");
println!(
"Chrome downloads available for {} platforms",
version.downloads.chrome.len()
);
if let Some(download) = version
.downloads
.chrome
.iter()
.filter(|it| it.platform == current_platform)
.next()
{
println!(
"Found Chrome download URL for current platform '{current_platform}': {}",
download.url
);
}
if let Some(chromedriver_downloads) = &version.downloads.chromedriver {
println!(
"ChromeDriver available for {} platforms",
chromedriver_downloads.len()
);
if let Some(download) = chromedriver_downloads
.iter()
.filter(|it| it.platform == current_platform)
.next()
{
println!(
"Found ChromeDriver download for current platform '{current_platform}': {}",
download.url
);
}
} else {
println!("No ChromeDriver downloads available for this version");
}
}
Ok(())
}