scripttests

package
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 7, 2025 License: MIT Imports: 20 Imported by: 0

Documentation

Overview

Package scripttests contains a specification of the behaviour of client-side scripting.

The tests are written targetting an interface; allowing different script engines to use the same suite of tests.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BeJSInstanceOf added in v0.8.0

func BeJSInstanceOf(
	expected string,
	ctx html.ScriptContext,
) types.GomegaMatcher

func RunSuites

func RunSuites(t *testing.T, h ScriptHostFactory)

Types

type AbortControllerSuite added in v0.8.0

type AbortControllerSuite struct {
	ScriptHostSuite
}

func NewAbortControllerSuite added in v0.8.0

func NewAbortControllerSuite(h html.ScriptHost) *AbortControllerSuite

func (*AbortControllerSuite) TestAbortSignal added in v0.8.0

func (s *AbortControllerSuite) TestAbortSignal()

func (*AbortControllerSuite) TestGlobals added in v0.8.0

func (s *AbortControllerSuite) TestGlobals()

type BeJSInstanceOfMatcher added in v0.8.0

type BeJSInstanceOfMatcher struct {
	// contains filtered or unexported fields
}

func (BeJSInstanceOfMatcher) FailureMessage added in v0.8.0

func (m BeJSInstanceOfMatcher) FailureMessage(actual any) string

func (BeJSInstanceOfMatcher) Match added in v0.8.0

func (m BeJSInstanceOfMatcher) Match(actual interface{}) (success bool, err error)

func (BeJSInstanceOfMatcher) NegatedFailureMessage added in v0.8.0

func (m BeJSInstanceOfMatcher) NegatedFailureMessage(actual any) string

type ClassListTestSuite added in v0.7.2

type ClassListTestSuite struct {
	ScriptHostSuite
}

func NewClassListTestSuite added in v0.7.2

func NewClassListTestSuite(h html.ScriptHost) *ClassListTestSuite

func (*ClassListTestSuite) TestAdd added in v0.7.2

func (s *ClassListTestSuite) TestAdd()

func (*ClassListTestSuite) TestClassListIsIterable added in v0.7.2

func (s *ClassListTestSuite) TestClassListIsIterable()

func (*ClassListTestSuite) TestIterableIteratesClassNames added in v0.7.2

func (s *ClassListTestSuite) TestIterableIteratesClassNames()

func (*ClassListTestSuite) TestToggleExistingClassName added in v0.7.2

func (s *ClassListTestSuite) TestToggleExistingClassName()

func (*ClassListTestSuite) TestToggleForceExistingItem added in v0.7.2

func (s *ClassListTestSuite) TestToggleForceExistingItem()

func (*ClassListTestSuite) TestToggleForceNonExistingItem added in v0.7.2

func (s *ClassListTestSuite) TestToggleForceNonExistingItem()

func (*ClassListTestSuite) TestToggleNoForceExistingItem added in v0.7.2

func (s *ClassListTestSuite) TestToggleNoForceExistingItem()

func (*ClassListTestSuite) TestToggleNoForceNonExistingItem added in v0.7.2

func (s *ClassListTestSuite) TestToggleNoForceNonExistingItem()

func (*ClassListTestSuite) TestToggleNonExistingClassName added in v0.7.2

func (s *ClassListTestSuite) TestToggleNonExistingClassName()

type DatasetSuite added in v0.8.0

type DatasetSuite struct {
	ScriptHostSuite
}

func NewDatasetSuite added in v0.8.0

func NewDatasetSuite(h html.ScriptHost) *DatasetSuite

func (*DatasetSuite) TestDataset added in v0.8.0

func (s *DatasetSuite) TestDataset()

func (*DatasetSuite) TestIsAFunction added in v0.8.0

func (s *DatasetSuite) TestIsAFunction()

type DocumentFragmentSuite added in v0.8.0

type DocumentFragmentSuite struct {
	ScriptHostSuite
}

func NewDocumentFragmentSuite added in v0.8.0

func NewDocumentFragmentSuite(h html.ScriptHost) *DocumentFragmentSuite

func (*DocumentFragmentSuite) TestInheritance added in v0.8.0

func (s *DocumentFragmentSuite) TestInheritance()

func (*DocumentFragmentSuite) TestMethods added in v0.8.0

func (s *DocumentFragmentSuite) TestMethods()

type DocumentTestSuite added in v0.5.4

type DocumentTestSuite struct {
	ScriptHostSuite
}

func NewDocumentSuite added in v0.5.4

func NewDocumentSuite(h html.ScriptHost) *DocumentTestSuite

func (*DocumentTestSuite) TestCreateElement added in v0.5.4

func (s *DocumentTestSuite) TestCreateElement()

func (*DocumentTestSuite) TestGetElementByID added in v0.5.4

func (s *DocumentTestSuite) TestGetElementByID()

func (*DocumentTestSuite) TestNewDocument added in v0.5.4

func (s *DocumentTestSuite) TestNewDocument()

func (*DocumentTestSuite) TestPrototype added in v0.5.4

func (s *DocumentTestSuite) TestPrototype()

type ElementSuite added in v0.8.0

type ElementSuite struct {
	ScriptHostSuite
}

func NewElementSuite added in v0.8.0

func NewElementSuite(h html.ScriptHost) *ElementSuite

func (*ElementSuite) TestAppendMultipleElements added in v0.8.0

func (s *ElementSuite) TestAppendMultipleElements()

func (*ElementSuite) TestAttributes added in v0.8.0

func (s *ElementSuite) TestAttributes()

func (*ElementSuite) TestChildren added in v0.8.0

func (s *ElementSuite) TestChildren()

func (*ElementSuite) TestIDLInterfaceNamesForElements added in v0.8.0

func (s *ElementSuite) TestIDLInterfaceNamesForElements()

type EventLoopTestSuite added in v0.3.0

type EventLoopTestSuite struct {
	suite.Suite
	// contains filtered or unexported fields
}

func NewEventLoopTestSuite added in v0.3.0

func NewEventLoopTestSuite(host html.ScriptHost) *EventLoopTestSuite

func (*EventLoopTestSuite) SetupTest added in v0.3.0

func (s *EventLoopTestSuite) SetupTest()

func (*EventLoopTestSuite) TeardownTest added in v0.3.0

func (s *EventLoopTestSuite) TeardownTest()

func (*EventLoopTestSuite) TestClearTimeout added in v0.3.0

func (s *EventLoopTestSuite) TestClearTimeout()

func (*EventLoopTestSuite) TestDeferExecution added in v0.3.0

func (s *EventLoopTestSuite) TestDeferExecution()

func (*EventLoopTestSuite) TestDispatchError added in v0.3.0

func (s *EventLoopTestSuite) TestDispatchError()

func (*EventLoopTestSuite) TestGlobals added in v0.3.0

func (s *EventLoopTestSuite) TestGlobals()

func (*EventLoopTestSuite) TestInterval added in v0.3.0

func (s *EventLoopTestSuite) TestInterval()

func (*EventLoopTestSuite) TestQueueMicrotask added in v0.6.0

func (s *EventLoopTestSuite) TestQueueMicrotask()

type EventTargetTestSuite added in v0.5.4

type EventTargetTestSuite struct {
	ScriptHostSuite
}

func NewEventTargetTestSuite added in v0.5.4

func NewEventTargetTestSuite(h html.ScriptHost) *EventTargetTestSuite

func (*EventTargetTestSuite) TestCallingEventListener added in v0.5.4

func (s *EventTargetTestSuite) TestCallingEventListener()

func (*EventTargetTestSuite) TestCancelable added in v0.5.4

func (s *EventTargetTestSuite) TestCancelable()

func (*EventTargetTestSuite) TestDOMEventBubble added in v0.5.4

func (s *EventTargetTestSuite) TestDOMEventBubble()

func (*EventTargetTestSuite) TestDOMEventBubbleNotSpecified added in v0.5.4

func (s *EventTargetTestSuite) TestDOMEventBubbleNotSpecified()

func (*EventTargetTestSuite) TestPropagateGoEventToJS added in v0.5.4

func (s *EventTargetTestSuite) TestPropagateGoEventToJS()

func (*EventTargetTestSuite) TestPrototype added in v0.5.4

func (s *EventTargetTestSuite) TestPrototype()

type FetchSuite added in v0.8.0

type FetchSuite struct {
	ScriptHostSuite
}

func NewFetchSuite added in v0.8.0

func NewFetchSuite(h html.ScriptHost) *FetchSuite

func (*FetchSuite) TestPrototypes added in v0.8.0

func (s *FetchSuite) TestPrototypes()

func (*FetchSuite) TestRequestURL added in v0.8.0

func (s *FetchSuite) TestRequestURL()

type FormDataSuite added in v0.8.0

type FormDataSuite struct {
	ScriptHostSuite
}

func NewFormDataSuite added in v0.8.0

func NewFormDataSuite(h html.ScriptHost) *FormDataSuite

func (*FormDataSuite) TestAddAndGet added in v0.8.0

func (s *FormDataSuite) TestAddAndGet()

func (*FormDataSuite) TestForEach added in v0.8.0

func (s *FormDataSuite) TestForEach()

func (*FormDataSuite) TestGetEntries added in v0.8.0

func (s *FormDataSuite) TestGetEntries()

func (*FormDataSuite) TestGetKeys added in v0.8.0

func (s *FormDataSuite) TestGetKeys()

func (*FormDataSuite) TestInheritance added in v0.8.0

func (s *FormDataSuite) TestInheritance()

func (*FormDataSuite) TestIterable added in v0.8.0

func (s *FormDataSuite) TestIterable()

type InitOption added in v0.8.0

type InitOption func(*option)

func WithContext added in v0.8.0

func WithContext(ctx context.Context) InitOption

func WithLogOption added in v0.8.0

func WithLogOption(lo gosttest.HandlerOption) InitOption

func WithMinLogLevel added in v0.8.0

func WithMinLogLevel(lvl slog.Level) InitOption

type LocationSuite

type LocationSuite struct {
	ScriptHostSuite
}

func NewLocationSuite

func NewLocationSuite(h html.ScriptHost) *LocationSuite

func (*LocationSuite) TestGlobalScope

func (s *LocationSuite) TestGlobalScope()

func (*LocationSuite) TestHrefEqualsDocumentLocation added in v0.3.0

func (s *LocationSuite) TestHrefEqualsDocumentLocation()

type NamedNodeMapSuite added in v0.8.0

type NamedNodeMapSuite struct {
	ScriptHostSuite
}

func NewNamedNodeMapSuite added in v0.8.0

func NewNamedNodeMapSuite(h html.ScriptHost) *NamedNodeMapSuite

func (*NamedNodeMapSuite) TestIndex added in v0.8.0

func (s *NamedNodeMapSuite) TestIndex()

func (*NamedNodeMapSuite) TestIndexOutOfRange added in v0.8.0

func (s *NamedNodeMapSuite) TestIndexOutOfRange()

func (*NamedNodeMapSuite) TestInheritance added in v0.8.0

func (s *NamedNodeMapSuite) TestInheritance()

func (*NamedNodeMapSuite) TestIterateAttributes added in v0.8.0

func (s *NamedNodeMapSuite) TestIterateAttributes()

func (*NamedNodeMapSuite) TestNodeTypeOfAttributes added in v0.8.0

func (s *NamedNodeMapSuite) TestNodeTypeOfAttributes()

type NodeListSuite added in v0.8.0

type NodeListSuite struct {
	ScriptHostSuite
}

func NewNodeListSuite added in v0.8.0

func NewNodeListSuite(h html.ScriptHost) *NodeListSuite

func (*NodeListSuite) TestExtendsObject added in v0.8.0

func (s *NodeListSuite) TestExtendsObject()

func (*NodeListSuite) TestNodeListWithThreeElements added in v0.8.0

func (s *NodeListSuite) TestNodeListWithThreeElements()

type NodeTestSuite added in v0.7.2

type NodeTestSuite struct {
	ScriptHostSuite
}

func NewNodeTestSuite added in v0.7.2

func NewNodeTestSuite(h html.ScriptHost) *NodeTestSuite

func (*NodeTestSuite) TestContains added in v0.7.2

func (s *NodeTestSuite) TestContains()

func (*NodeTestSuite) TestFirstChild added in v0.7.2

func (s *NodeTestSuite) TestFirstChild()

func (*NodeTestSuite) TestInsertBefore added in v0.7.2

func (s *NodeTestSuite) TestInsertBefore()

func (*NodeTestSuite) TestInsertBeforeWithNoRef added in v0.7.2

func (s *NodeTestSuite) TestInsertBeforeWithNoRef()

func (*NodeTestSuite) TestInsertBeforeWithNullRef added in v0.8.0

func (s *NodeTestSuite) TestInsertBeforeWithNullRef()

func (*NodeTestSuite) TestRemoveChild added in v0.7.2

func (s *NodeTestSuite) TestRemoveChild()

func (*NodeTestSuite) TestStructure added in v0.8.0

func (s *NodeTestSuite) TestStructure()

type ScriptHostFactory added in v0.7.0

type ScriptHostFactory interface{ New() html.ScriptHost }

type ScriptHostFactorySuite added in v0.8.0

type ScriptHostFactorySuite struct {
	gosttest.GomegaSuite

	Window htmltest.WindowHelper
	// contains filtered or unexported fields
}

func NewScriptHostFactorySuite added in v0.8.0

func NewScriptHostFactorySuite(f ScriptHostFactory) *ScriptHostFactorySuite

func (*ScriptHostFactorySuite) Eval added in v0.8.0

func (s *ScriptHostFactorySuite) Eval(script string) (any, error)

Eval runs a script and returns the evaluated value as a native Go value.

Returns an error if no suitable conversion could be found or if the conversion is not implemented.

Returns an error if script code throws an exception.

If the return value is not needed, you can use RunScript instead to avoid dealing with errors if return value conversion is not possible.

func (*ScriptHostFactorySuite) MustEval added in v0.8.0

func (s *ScriptHostFactorySuite) MustEval(script string) any

func (*ScriptHostFactorySuite) MustRunScript added in v0.8.0

func (s *ScriptHostFactorySuite) MustRunScript(script string)

MustRunScript runs a script and marks the test as an error if an error occurs.

func (*ScriptHostFactorySuite) RunScript added in v0.8.0

func (s *ScriptHostFactorySuite) RunScript(script string) error

Runs a script, and discards the returned value.

Returns an error if the script code throws. Named RunScript to not shadow [Suite.Run].

func (*ScriptHostFactorySuite) SetupTest added in v0.8.0

func (s *ScriptHostFactorySuite) SetupTest()

type ScriptHostSuite

type ScriptHostSuite struct {
	gosttest.GomegaSuite

	Window htmltest.WindowHelper
	// contains filtered or unexported fields
}

func NewScriptHostSuite

func NewScriptHostSuite(h html.ScriptHost) *ScriptHostSuite

func (*ScriptHostSuite) Eval added in v0.5.7

func (s *ScriptHostSuite) Eval(script string) (any, error)

Runs a script and returns the evaluated value as a native Go value.

Panics (or generates an error?) if no suitable conversion could be found (i.e. gost doesn't implement this yet).

Returns an error if script code throws.

If the return value is not used, call run; to avoid panic/error

func (*ScriptHostSuite) MustEval added in v0.5.7

func (s *ScriptHostSuite) MustEval(script string) any

func (*ScriptHostSuite) MustLoadHTML added in v0.5.7

func (s *ScriptHostSuite) MustLoadHTML(html string)

func (*ScriptHostSuite) MustRunScript added in v0.5.7

func (s *ScriptHostSuite) MustRunScript(script string)

MustRunScript runs a script and marks the test as an error if an error occurs.

func (*ScriptHostSuite) NewWindowLocation added in v0.8.0

func (s *ScriptHostSuite) NewWindowLocation(location string)

NewWindowLocation replaces the window. The new window has the specified location, but doesn't actually load the content.

func (*ScriptHostSuite) OpenWindow added in v0.3.0

func (s *ScriptHostSuite) OpenWindow(location string, h http.Handler) html.Window

func (*ScriptHostSuite) RunScript added in v0.5.7

func (s *ScriptHostSuite) RunScript(script string) error

Runs a script, and discards the returned value.

Returns an error if the script code throws. Named RunScript to not shadow [Suite.Run].

func (*ScriptHostSuite) SetupTest

func (s *ScriptHostSuite) SetupTest()

func (*ScriptHostSuite) TearDownSuite added in v0.8.0

func (s *ScriptHostSuite) TearDownSuite()

func (*ScriptHostSuite) TeardownTest

func (s *ScriptHostSuite) TeardownTest()

type ShadowRootSuite added in v0.8.0

type ShadowRootSuite struct {
	ScriptHostSuite
}

func NewShadowRootSuite added in v0.8.0

func NewShadowRootSuite(h html.ScriptHost) *ShadowRootSuite

func (*ShadowRootSuite) TestInheritance added in v0.8.0

func (s *ShadowRootSuite) TestInheritance()

func (*ShadowRootSuite) TestNodeType added in v0.8.0

func (s *ShadowRootSuite) TestNodeType()

type StreamsSuite added in v0.8.0

type StreamsSuite struct {
	ScriptHostFactorySuite
}

func NewStreamsSuite added in v0.8.0

func NewStreamsSuite(f ScriptHostFactory) *StreamsSuite

func (*StreamsSuite) TestPrototypes added in v0.8.0

func (s *StreamsSuite) TestPrototypes()

type UIEventTestSuite added in v0.4.0

type UIEventTestSuite struct {
	ScriptHostSuite
}

func NewUIEventTestSuite added in v0.4.0

func NewUIEventTestSuite(h html.ScriptHost) *UIEventTestSuite

func (*UIEventTestSuite) TestClickEventIsAPointerEvent added in v0.4.0

func (s *UIEventTestSuite) TestClickEventIsAPointerEvent()

func (*UIEventTestSuite) TestEventInheritance added in v0.4.0

func (s *UIEventTestSuite) TestEventInheritance()

type WindowTestSuite added in v0.4.0

type WindowTestSuite struct {
	ScriptHostSuite
}

func NewWindowTestSuite added in v0.4.0

func NewWindowTestSuite(h html.ScriptHost) *WindowTestSuite

func (*WindowTestSuite) TestConstructorName added in v0.4.0

func (s *WindowTestSuite) TestConstructorName()

func (*WindowTestSuite) TestDOMContentLoaded added in v0.4.0

func (s *WindowTestSuite) TestDOMContentLoaded()

func (*WindowTestSuite) TestDocumentProperty added in v0.4.0

func (s *WindowTestSuite) TestDocumentProperty()

func (*WindowTestSuite) TestGlobalInstance added in v0.4.0

func (s *WindowTestSuite) TestGlobalInstance()

func (*WindowTestSuite) TestLocation added in v0.8.0

func (s *WindowTestSuite) TestLocation()

func (*WindowTestSuite) TestWindowConstructor added in v0.4.0

func (s *WindowTestSuite) TestWindowConstructor()

func (*WindowTestSuite) TestWindowInheritance added in v0.4.0

func (s *WindowTestSuite) TestWindowInheritance()

type XMLHttpRequestSuite added in v0.8.0

type XMLHttpRequestSuite struct {
	ScriptHostSuite
	// contains filtered or unexported fields
}

func NewXMLHttpRequestSuite added in v0.8.0

func NewXMLHttpRequestSuite(h html.ScriptHost) *XMLHttpRequestSuite

func (*XMLHttpRequestSuite) ServeHTTP added in v0.8.0

func (s *XMLHttpRequestSuite) ServeHTTP(w http.ResponseWriter, r *http.Request)

func (*XMLHttpRequestSuite) TestInheritance added in v0.8.0

func (s *XMLHttpRequestSuite) TestInheritance()

func (*XMLHttpRequestSuite) TestLoadEvent added in v0.8.0

func (s *XMLHttpRequestSuite) TestLoadEvent()

func (*XMLHttpRequestSuite) TestOnloadAttribute added in v0.8.0

func (s *XMLHttpRequestSuite) TestOnloadAttribute()

func (*XMLHttpRequestSuite) TestSendFormData added in v0.8.0

func (s *XMLHttpRequestSuite) TestSendFormData()

func (*XMLHttpRequestSuite) TestSendNullBody added in v0.8.0

func (s *XMLHttpRequestSuite) TestSendNullBody()

func (*XMLHttpRequestSuite) TestSendString added in v0.8.0

func (s *XMLHttpRequestSuite) TestSendString()

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL