Skip to content

Commit 0d52ec8

Browse files
Improve platform_links_are_direct_and_without_nofollow readability
1 parent 07a06ff commit 0d52ec8

File tree

1 file changed

+29
-49
lines changed

1 file changed

+29
-49
lines changed

src/web/crate_details.rs

Lines changed: 29 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -645,6 +645,7 @@ mod tests {
645645
use crate::index::api::CrateOwner;
646646
use crate::test::{
647647
assert_cache_control, assert_redirect, assert_redirect_cached, wrapper, TestDatabase,
648+
TestEnvironment,
648649
};
649650
use anyhow::{Context, Error};
650651
use kuchikiki::traits::TendrilSink;
@@ -1279,6 +1280,25 @@ mod tests {
12791280
}
12801281
}
12811282

1283+
fn run_check_links(
1284+
env: &TestEnvironment,
1285+
url: &str,
1286+
extra: &str,
1287+
should_contain_redirect: bool,
1288+
) {
1289+
let response = env.frontend().get(url).send().unwrap();
1290+
assert!(response.status().is_success());
1291+
check_links(response.text().unwrap(), false, should_contain_redirect);
1292+
// Same test with AJAX endpoint.
1293+
let response = env
1294+
.frontend()
1295+
.get(&format!("/-/menus/platforms{url}{extra}"))
1296+
.send()
1297+
.unwrap();
1298+
assert!(response.status().is_success());
1299+
check_links(response.text().unwrap(), true, should_contain_redirect);
1300+
}
1301+
12821302
wrapper(|env| {
12831303
env.fake_release()
12841304
.name("dummy")
@@ -1290,55 +1310,15 @@ mod tests {
12901310
.add_target("x86_64-pc-windows-msvc")
12911311
.create()?;
12921312

1293-
let response = env.frontend().get("/crate/dummy/0.4.0").send()?;
1294-
assert!(response.status().is_success());
1295-
check_links(response.text()?, false, false);
1296-
// Same test with AJAX endpoint.
1297-
let response = env
1298-
.frontend()
1299-
.get("/-/menus/platforms/crate/dummy/0.4.0")
1300-
.send()?;
1301-
assert!(response.status().is_success());
1302-
check_links(response.text()?, true, false);
1303-
1304-
let response = env.frontend().get("/dummy/latest/dummy").send()?;
1305-
assert!(response.status().is_success());
1306-
check_links(response.text()?, false, true);
1307-
// Same test with AJAX endpoint.
1308-
let response = env
1309-
.frontend()
1310-
.get("/-/menus/platforms/dummy/latest/dummy/")
1311-
.send()?;
1312-
assert!(response.status().is_success());
1313-
check_links(response.text()?, true, true);
1314-
1315-
let response = env
1316-
.frontend()
1317-
.get("/dummy/0.4.0/x86_64-pc-windows-msvc/dummy")
1318-
.send()?;
1319-
assert!(response.status().is_success());
1320-
check_links(response.text()?, false, true);
1321-
// Same test with AJAX endpoint.
1322-
let response = env
1323-
.frontend()
1324-
.get("/-/menus/platforms/dummy/0.4.0/x86_64-pc-windows-msvc/dummy/")
1325-
.send()?;
1326-
assert!(response.status().is_success());
1327-
check_links(response.text()?, true, true);
1328-
1329-
let response = env
1330-
.frontend()
1331-
.get("/dummy/0.4.0/x86_64-pc-windows-msvc/dummy/struct.A.html")
1332-
.send()?;
1333-
assert!(response.status().is_success());
1334-
check_links(response.text()?, false, true);
1335-
// Same test with AJAX endpoint.
1336-
let response = env
1337-
.frontend()
1338-
.get("/-/menus/platforms/dummy/0.4.0/x86_64-pc-windows-msvc/dummy/struct.A.html")
1339-
.send()?;
1340-
assert!(response.status().is_success());
1341-
check_links(response.text()?, true, true);
1313+
run_check_links(env, "/crate/dummy/0.4.0", "", false);
1314+
run_check_links(env, "/dummy/latest/dummy", "/", true);
1315+
run_check_links(env, "/dummy/0.4.0/x86_64-pc-windows-msvc/dummy", "/", true);
1316+
run_check_links(
1317+
env,
1318+
"/dummy/0.4.0/x86_64-pc-windows-msvc/dummy/struct.A.html",
1319+
"/",
1320+
true,
1321+
);
13421322

13431323
Ok(())
13441324
});

0 commit comments

Comments
 (0)