From af5b719dee379b2ac0ff431cb6fffecda3f068ca Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 4 Nov 2024 17:03:12 +0100 Subject: [PATCH 1/2] Add information on how crate sizes are computed --- templates/crate/details.html | 10 ++++++++-- templates/style/style.scss | 14 ++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/templates/crate/details.html b/templates/crate/details.html index 9752cd9f6..e2ae588cb 100644 --- a/templates/crate/details.html +++ b/templates/crate/details.html @@ -40,11 +40,17 @@ {%- if let Some(source_size) = source_size -%}
  • Size
  • - Source code size: {{(*source_size)|filesizeformat}} + Source code size: {{(*source_size)|filesizeformat}} + {{- crate::icons::IconCircleInfo.render_solid(false, false, "") -}} + This is the summed size of all the files inside the crates.io package for this release. +
  • {%- if let Some(doc_size) = documentation_size -%}
  • - Documentation size: {{(*doc_size)|filesizeformat}} + Documentation size: {{(*doc_size)|filesizeformat}} + {{- crate::icons::IconCircleInfo.render_solid(false, false, "") -}} + This is the summed size of all files generated by rustdoc for all configured targets +
  • {%- endif -%} {%- endif -%} diff --git a/templates/style/style.scss b/templates/style/style.scss index 21832fff8..77c69ce9d 100644 --- a/templates/style/style.scss +++ b/templates/style/style.scss @@ -479,6 +479,20 @@ div.package-page-container { width: 100%; } + .documented-info .size .info { + display: none; + position: absolute; + top: 90%; + background: var(--color-background-code); + z-index: 1; + border: 1px solid var(--color-menu-border); + } + + .documented-info .size:hover .info, + .documented-info .size:focus .info { + display: block; + } + li.pure-menu-heading:first-child { margin-top: 0; } From 685be54ee8781c0b6b0296bdc68594b2a9e3835c Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Mon, 4 Nov 2024 17:03:27 +0100 Subject: [PATCH 2/2] Add GUI tests for size popups --- gui-tests/crate-sizes.goml | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 gui-tests/crate-sizes.goml diff --git a/gui-tests/crate-sizes.goml b/gui-tests/crate-sizes.goml new file mode 100644 index 000000000..783a3790f --- /dev/null +++ b/gui-tests/crate-sizes.goml @@ -0,0 +1,37 @@ +// Checks that the size popup work as expected. +go-to: |DOC_PATH| + "/crate/sysinfo/latest" +// By default, they're hidden. +assert-css: ( + "div.package-page-container div.package-menu .documented-info .size .info", + {"display": "none"}, +) +// When we hover the parent element, it should make them appear. +move-cursor-to: "div.package-page-container div.package-menu .documented-info .size" +wait-for-css: ( + "div.package-page-container div.package-menu .documented-info .size .info", + {"display": "block"}, +) +// And when we move the mouse cursor away, it's hidden again. +move-cursor-to: "#clipboard" +assert-css: ( + "div.package-page-container div.package-menu .documented-info .size .info", + {"display": "none"}, +) + +// When clicked, the popup should remain visible. +click: "div.package-page-container div.package-menu .documented-info .size" +wait-for-css: ( + "div.package-page-container div.package-menu .documented-info .size .info", + {"display": "block"}, +) +move-cursor-to: "#clipboard" +assert-css: ( + "div.package-page-container div.package-menu .documented-info .size .info", + {"display": "block"}, +) +// Clicking somewhere else will change focus, making the popup disappear. +click: "#main" +wait-for-css: ( + "div.package-page-container div.package-menu .documented-info .size .info", + {"display": "none"}, +)