mirror of
				https://github.com/rust-lang/rust.git
				synced 2025-10-30 20:44:34 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			77 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| // ignore-tidy-linelength
 | |
| // This test ensures that the items declaration content overflow is handled inside the <pre> directly.
 | |
| 
 | |
| // We need to disable this check because
 | |
| // `trait.impl/test_docs/trait.ALongNameBecauseItHelpsTestingTheCurrentProblem.js`
 | |
| // doesn't exist.
 | |
| fail-on-request-error: false
 | |
| 
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/long_trait/trait.ALongNameBecauseItHelpsTestingTheCurrentProblem.html"
 | |
| // We set a fixed size so there is no chance of "random" resize.
 | |
| set-window-size: (1100, 800)
 | |
| // Logically, the <body> scroll width should be the width of the window.
 | |
| assert-property: ("body", {"scrollWidth": "1100"})
 | |
| // However, since there is overflow in the type declaration, its scroll width is bigger.
 | |
| assert-property: ("pre.item-decl", {"scrollWidth": "1324"})
 | |
| 
 | |
| // In the table-ish view on the module index, the name should not be wrapped more than necessary.
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/too_long/index.html"
 | |
| assert-property: (".item-table .struct", {"offsetWidth": "684"})
 | |
| 
 | |
| // We now make the same check on type declaration...
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/too_long/type.ReallyLongTypeNameLongLongLong.html"
 | |
| assert-property: ("body", {"scrollWidth": "1100"})
 | |
| // We now check that the section width hasn't grown because of it.
 | |
| assert-property: ("#main-content", {"scrollWidth": "840"})
 | |
| // And now checking that it has scrollable content.
 | |
| assert-property: ("pre.item-decl", {"scrollWidth": "1103"})
 | |
| 
 | |
| // ... and constant.
 | |
| // On a sidenote, it also checks that the (very) long title isn't changing the docblock width.
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/too_long/constant.ReallyLongTypeNameLongLongLongConstBecauseWhyNotAConstRightGigaGigaSupraLong.html"
 | |
| assert-property: ("body", {"scrollWidth": "1100"})
 | |
| // We now check that the section width hasn't grown because of it.
 | |
| assert-property: ("#main-content", {"scrollWidth": "840"})
 | |
| // And now checking that it has scrollable content.
 | |
| assert-property: ("pre.item-decl", {"scrollWidth": "950"})
 | |
| 
 | |
| // On mobile:
 | |
| set-window-size: (600, 600)
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/too_long/struct.SuperIncrediblyLongLongLongLongLongLongLongGigaGigaGigaMegaLongLongLongStructName.html"
 | |
| // It shouldn't have an overflow in the topbar either.
 | |
| store-property: (".mobile-topbar", {"scrollWidth": scrollWidth})
 | |
| assert-property: (".mobile-topbar", {"clientWidth": |scrollWidth|})
 | |
| assert-css: (".mobile-topbar h2", {"overflow-x": "hidden"})
 | |
| 
 | |
| // Check wrapping for top main-heading h1 and out-of-band.
 | |
| // On desktop, they wrap when too big.
 | |
| set-window-size: (1100, 800)
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/too_long/struct.SuperIncrediblyLongLongLongLongLongLongLongGigaGigaGigaMegaLongLongLongStructName.html"
 | |
| compare-elements-position-false: (".main-heading h1", ".main-heading .out-of-band", ("y"))
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/index.html"
 | |
| compare-elements-position: (".main-heading h1", ".main-heading .out-of-band", ("y"))
 | |
| // make sure there is a gap between them
 | |
| compare-elements-position-near-false: (".main-heading h1", ".main-heading .out-of-band", {"x": 550})
 | |
| 
 | |
| // On mobile, they always wrap.
 | |
| set-window-size: (600, 600)
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/too_long/struct.SuperIncrediblyLongLongLongLongLongLongLongGigaGigaGigaMegaLongLongLongStructName.html"
 | |
| compare-elements-position-false: (".main-heading h1", ".main-heading .out-of-band", ("y"))
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/index.html"
 | |
| compare-elements-position-false: (".main-heading h1", ".main-heading .out-of-band", ("y"))
 | |
| 
 | |
| // Now we will check that the scrolling is working.
 | |
| // First on an item with "hidden methods".
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/scroll_traits/trait.Iterator.html"
 | |
| 
 | |
| click: ".item-decl .type-contents-toggle"
 | |
| assert-property: ("pre.item-decl", {"scrollLeft": 0})
 | |
| scroll-to: "//*[@class='rust item-decl']//details/a[text()='String']"
 | |
| assert-property-false: ("pre.item-decl", {"scrollLeft": 0})
 | |
| 
 | |
| // Then on an item without "hidden methods".
 | |
| go-to: "file://" + |DOC_PATH| + "/lib2/scroll_traits/trait.TraitWithLongItemsName.html"
 | |
| assert-property: ("pre.item-decl", {"scrollLeft": 0})
 | |
| scroll-to: "//*[@class='rust item-decl']//code/a[text()='String']"
 | |
| assert-property-false: ("pre.item-decl", {"scrollLeft": 0})
 | 
