|  | // Checks that the first sentence of an impl block doc is always visible even when the impl | 
|  | // block is collapsed. | 
|  | go-to: "file://" + |DOC_PATH| + "/test_docs/struct.ImplDoc.html" | 
|  |  | 
|  | set-window-size: (900, 600) | 
|  |  | 
|  | define-function: ( | 
|  | "compare-size-and-pos", | 
|  | [nth_impl], | 
|  | block { | 
|  | // First we collapse the impl block. | 
|  | store-value: (impl_path, "#implementations-list details:nth-of-type(" + |nth_impl| + ")") | 
|  | set-property: (|impl_path|, {"open": false}) | 
|  | wait-for: |impl_path| + ":not([open])" | 
|  |  | 
|  | store-value: (impl_path, |impl_path| + " summary") | 
|  | store-size: (|impl_path|, {"height": impl_height}) | 
|  | store-position: (|impl_path|, {"y": impl_y}) | 
|  |  | 
|  | store-size: (|impl_path| + " .docblock", {"height": doc_height}) | 
|  | store-position: (|impl_path| + " .docblock", {"y": doc_y}) | 
|  |  | 
|  | assert: |impl_y| + |impl_height| >= |doc_y| | 
|  | } | 
|  | ) | 
|  |  | 
|  | call-function: ("compare-size-and-pos", {"nth_impl": 1}) | 
|  | // Since the first impl block has a long line, we ensure that it doesn't display all of it. | 
|  | assert: (|impl_y| + |impl_height|) <= (|doc_y| + |doc_height|) | 
|  |  | 
|  | call-function: ("compare-size-and-pos", {"nth_impl": 2}) | 
|  | // The second impl block has a short line. | 
|  | assert: (|impl_y| + |impl_height|) >= (|doc_y| + |doc_height|) | 
|  |  | 
|  | // FIXME: Needs `if` condition to make this test check that `padding-top` on the "..." element | 
|  | // is as expected for tables. | 
|  | call-function: ("compare-size-and-pos", {"nth_impl": 3}) | 
|  | assert: (|impl_y| + |impl_height|) >= (|doc_y| + |doc_height|) | 
|  | call-function: ("compare-size-and-pos", {"nth_impl": 4}) | 
|  | assert: (|impl_y| + |impl_height|) >= (|doc_y| + |doc_height|) | 
|  | call-function: ("compare-size-and-pos", {"nth_impl": 5}) | 
|  | assert: (|impl_y| + |impl_height|) >= (|doc_y| + |doc_height|) |