mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
When do assertion, you need not to provide all options
somethings like
```
button.assert({
width: container.width
} );
```
is also ok from official doc.
234 lines
7.9 KiB
TypeScript
234 lines
7.9 KiB
TypeScript
// Type definitions for quixote v0.7.0
|
|
// Project: http://quixote-css.com/
|
|
// Definitions by: Aleksandr Filatov <https://github.com/greybax>
|
|
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
|
|
|
|
interface Quixote {
|
|
// Create a test iframe. This is a slow operation, so once you have a frame, it's best to use QFrame.reset() on it rather than creating a new frame for each test
|
|
createFrame(options: QuixoteFrameOptions, callback: (err: Error, loadedFrame: QFrame) => void): QFrame;
|
|
}
|
|
|
|
interface QFrame {
|
|
// Reset the frame back to the state it was in immediately after you called quixote.createFrame()
|
|
reset(): void;
|
|
|
|
// Remove the test frame entirely.
|
|
remove(): void;
|
|
|
|
// Retrieve an element matching a selector. Throws an exception unless exactly one matching element is found
|
|
get(selector: string, nickname?: string): QElement;
|
|
|
|
// Retrieve a list of elements matching a selector. If you want to ensure that exactly one element is retrieved, use frame.get() instead.
|
|
getAll(selector: string, nickname?: string): QElementList;
|
|
|
|
// Create an element and append it to the frame's body. Throws an exception unless exactly one element is created. (But that one element may contain children.)
|
|
add(html: string, nickname?: string): QElement;
|
|
|
|
// Provides access to descriptors for the frame's viewport (the part of the page that you can see in the frame, not including scrollbars)
|
|
viewport(): QElement;
|
|
|
|
// Provides access to descriptors for the frame's page (everything you can see or scroll to, not including scrollbars)
|
|
page(): QElement;
|
|
|
|
// Retrieves the frame's body element.
|
|
body(): QElement;
|
|
|
|
// Changes the size of the frame.
|
|
resize(width: number, height: number): void;
|
|
|
|
// Scroll the page so that top-left corner of the frame is as close as possible to an (x, y) coordinate.
|
|
scroll(x: number, y: number): void;
|
|
|
|
// Determine the (x, y) coordinate of the top-left corner of the frame. This uses pageXOffset and pageYOffset under the covers. (On IE 8, it uses scrollLeft and scrollTop.)
|
|
getRawScrollPosition(x: number, y: number): Object;
|
|
|
|
// Retrieve the underlying HTMLIFrameElement DOM element for the frame.
|
|
toDomElement(): HTMLIFrameElement;
|
|
}
|
|
|
|
interface QElement {
|
|
// Compare the element's descriptors to a set of expected values and throw an exception if they don't match
|
|
assert(expected: ElementDescriptor, message?: string): void;
|
|
|
|
// Compare the element's descriptors to a set of expected values.
|
|
diff(expected: ElementDescriptor): string;
|
|
|
|
// Determine how the browser is actually rendering an element's style. This uses getComputedStyle() under the covers. (On IE 8, it uses currentStyle)
|
|
getRawStyle(property: string): string;
|
|
|
|
// Determine where an element is displayed within the frame viewport, as computed by the browser
|
|
getRawPosition(): RawPositionObject;
|
|
|
|
// Retrieve the underlying HTMLElement DOM element for the frame.
|
|
toDomElement(): HTMLElement;
|
|
}
|
|
|
|
interface QElementList {
|
|
// Determine the number of elements in the list.
|
|
length(): number;
|
|
|
|
// Retrieve an element from the list. Positive and negative indices are allowed. Throws an exception if the index is out of bounds.
|
|
at(index: number, nickname?: string): QElement;
|
|
}
|
|
|
|
// Element positions and sizes are available on all QElement instances.
|
|
interface ElementDescriptor {
|
|
// The top edge of the element
|
|
top?: PositionDescriptor;
|
|
|
|
// The right edge of the element
|
|
right?: PositionDescriptor;
|
|
|
|
// The bottom edge of the element
|
|
bottom?: PositionDescriptor;
|
|
|
|
// The left edge of the element
|
|
left?: PositionDescriptor;
|
|
|
|
// Horizontal center: midway between the right and left edges.
|
|
center?: PositionDescriptor;
|
|
|
|
// Vertical middle: midway between the top and bottom edges.
|
|
middle?: PositionDescriptor;
|
|
|
|
// Width of the element.
|
|
width?: SizeDescriptor;
|
|
|
|
// Height of the element.
|
|
height?: SizeDescriptor;
|
|
}
|
|
|
|
// Viewport positions and sizes are available on QFrame.viewport()
|
|
interface ViewportDescriptor {
|
|
// The highest visible part of the page.
|
|
top: PositionDescriptor;
|
|
|
|
// The rightmost visible part of the page.
|
|
right: PositionDescriptor;
|
|
|
|
// The lowest visible part of the page.
|
|
bottom: PositionDescriptor;
|
|
|
|
// The leftmost visible part of the page.
|
|
left: PositionDescriptor;
|
|
|
|
// Horizontal center: midway between right and left
|
|
center: PositionDescriptor;
|
|
|
|
// Vertical middle: midway between top and bottom.
|
|
middle: PositionDescriptor;
|
|
|
|
// Width of the viewport.
|
|
width: SizeDescriptor;
|
|
|
|
// Height of the viewport.
|
|
height: SizeDescriptor;
|
|
}
|
|
|
|
// Page positions and sizes are available on QFrame.page().
|
|
interface PageDescriptor {
|
|
// The top of the page.
|
|
top: PositionDescriptor;
|
|
|
|
// The right side of the page.
|
|
right: PositionDescriptor;
|
|
|
|
// The bottom of the page.
|
|
bottom: PositionDescriptor;
|
|
|
|
// The left side of the page.
|
|
left: PositionDescriptor;
|
|
|
|
// Horizontal center: midway between right and left.
|
|
center: PositionDescriptor;
|
|
|
|
// Vertical middle: midway between top and bottom.
|
|
middle: PositionDescriptor;
|
|
|
|
// Width of the page.
|
|
width: SizeDescriptor;
|
|
|
|
// Height of the page.
|
|
height: SizeDescriptor;
|
|
}
|
|
|
|
// Position descriptors represent an X or Y coordinate. The top-left corner of the page is (0, 0) and the values increase downward and to the right.
|
|
interface PositionDescriptor {
|
|
// Create a new descriptor that is further down the page or to the right.
|
|
plus(amount: SizeDescriptor): PositionDescriptor;
|
|
|
|
// Create a new descriptor that is further down the page or to the right.
|
|
plus(amount: number): PositionDescriptor;
|
|
|
|
// Create a new descriptor that is further down the page or to the right.
|
|
minus(amount: SizeDescriptor): PositionDescriptor;
|
|
|
|
// Create a new descriptor that is further down the page or to the right.
|
|
minus(amount: number): PositionDescriptor;
|
|
}
|
|
|
|
// Size descriptors represent width or height.
|
|
interface SizeDescriptor {
|
|
// Create a descriptor that's bigger than this one.
|
|
plus(amount: SizeDescriptor): SizeDescriptor;
|
|
|
|
// Create a descriptor that's bigger than this one.
|
|
plus(amount: number): SizeDescriptor;
|
|
|
|
// Create a descriptor that's smaller than this one.
|
|
minus(amount: SizeDescriptor): SizeDescriptor;
|
|
|
|
// Create a descriptor that's smaller than this one.
|
|
minus(amount: number): SizeDescriptor;
|
|
|
|
// Create a new descriptor that's a multiple or fraction of the size of this one.
|
|
times(multiple: number): SizeDescriptor;
|
|
}
|
|
|
|
interface QuixoteFrameOptions {
|
|
// Width of the iframe. Defaults to a large value (see stability note below)
|
|
width?: number;
|
|
|
|
// Height of the iframe. Defaults to a large value (see stability note below)
|
|
height?: number;
|
|
|
|
// URL of an HTML document to load into the frame. Must be served from same domain as the enclosing test document, or you could get same-origin policy errors. Defaults to an empty document with <!DOCTYPE html> (to enable standards-mode rendering)
|
|
src?: string;
|
|
|
|
// URL of a CSS stylesheet to load into the frame. Defaults to loading nothing
|
|
stylesheet?: string;
|
|
}
|
|
|
|
interface RawPositionObject {
|
|
// top edge
|
|
top: number;
|
|
|
|
// right edge
|
|
right: number;
|
|
|
|
// bottom edge
|
|
bottom: number;
|
|
|
|
// left edge
|
|
left: number;
|
|
|
|
// width (right edge minus left edge)
|
|
width: number;
|
|
|
|
// height (bottom edge minus top edge)
|
|
height: number;
|
|
}
|
|
|
|
declare var quixote: Quixote;
|
|
|
|
declare module "quixote" {
|
|
|
|
class Quixote {
|
|
constructor();
|
|
|
|
createFrame(options: QuixoteFrameOptions, callback: (err: Error, loadedFrame: QFrame) => void): QFrame;
|
|
}
|
|
|
|
export = Quixote;
|
|
}
|