stdweb/webapi/events/
dom.rs1use webcore::value::Reference;
2use webapi::event::{IEvent, IUiEvent, UiEvent, Event};
3
4#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
12#[reference(instance_of = "Event")]
13#[reference(event = "change")]
14#[reference(subclass_of(Event))]
15pub struct ChangeEvent( Reference );
16
17impl IEvent for ChangeEvent {}
18
19#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
30#[reference(instance_of = "Event")]
31#[reference(event = "input")]
32#[reference(subclass_of(Event))]
33pub struct InputEvent( Reference );
34
35impl IEvent for InputEvent {}
36
37#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
42#[reference(instance_of = "UIEvent")]
43#[reference(event = "load")]
44#[reference(subclass_of(Event, UiEvent))]
45pub struct ResourceLoadEvent( Reference );
46
47impl IEvent for ResourceLoadEvent {}
48impl IUiEvent for ResourceLoadEvent {}
49
50#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
55#[reference(instance_of = "UIEvent")]
56#[reference(event = "abort")]
57#[reference(subclass_of(Event, UiEvent))]
58pub struct ResourceAbortEvent( Reference );
59
60impl IEvent for ResourceAbortEvent {}
61impl IUiEvent for ResourceAbortEvent {}
62
63#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
69#[reference(instance_of = "UIEvent")]
70#[reference(event = "error")]
71#[reference(subclass_of(Event, UiEvent))]
72pub struct ResourceErrorEvent( Reference );
73
74impl IEvent for ResourceErrorEvent {}
75impl IUiEvent for ResourceErrorEvent {}
76
77#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
84#[reference(instance_of = "Event")]
85#[reference(event = "resize")]
86#[reference(subclass_of(Event))]
87pub struct ResizeEvent( Reference );
88
89impl IEvent for ResizeEvent {}
90
91#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
96#[reference(instance_of = "Event")]
97#[reference(event = "scroll")]
98#[reference(subclass_of(Event))]
99pub struct ScrollEvent( Reference );
100
101impl IEvent for ScrollEvent {}
102
103#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
108#[reference(instance_of = "Event")]
109#[reference(event = "readystatechange")]
110#[reference(subclass_of(Event))]
111pub struct ReadyStateChangeEvent( Reference );
112
113impl IEvent for ReadyStateChangeEvent {}
114
115#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
120#[reference(instance_of = "Event")]
121#[reference(event = "submit")]
122#[reference(subclass_of(Event))]
123pub struct SubmitEvent( Reference );
124
125impl IEvent for SubmitEvent {}
126
127#[derive(Clone, Debug, PartialEq, Eq, ReferenceType)]
133#[reference(instance_of = "Event")]
134#[reference(event = "selectionchange")]
135#[reference(subclass_of(Event))]
136pub struct SelectionChangeEvent( Reference );
137
138impl IEvent for SelectionChangeEvent {}
139
140#[cfg(all(test, feature = "web_test"))]
141mod tests {
142 use super::*;
143 use webcore::try_from::TryInto;
144 use webapi::event::ConcreteEvent;
145
146 #[test]
147 fn test_change_event() {
148 let event: ChangeEvent = js!(
149 return new Event( @{ChangeEvent::EVENT_TYPE} );
150 ).try_into().unwrap();
151 assert_eq!( event.event_type(), ChangeEvent::EVENT_TYPE );
152 }
153
154 #[test]
155 fn test_input_event() {
156 let event: InputEvent = js!(
157 return new Event( @{InputEvent::EVENT_TYPE} );
158 ).try_into().unwrap();
159 assert_eq!( event.event_type(), InputEvent::EVENT_TYPE );
160 }
161
162 #[test]
163 fn test_resource_load_event() {
164 let event: ResourceLoadEvent = js!(
165 return new UIEvent( @{ResourceLoadEvent::EVENT_TYPE} );
166 ).try_into().unwrap();
167 assert_eq!( event.event_type(), ResourceLoadEvent::EVENT_TYPE );
168 }
169
170 #[test]
171 fn test_resource_abort_event() {
172 let event: ResourceAbortEvent = js!(
173 return new UIEvent( @{ResourceAbortEvent::EVENT_TYPE} );
174 ).try_into().unwrap();
175 assert_eq!( event.event_type(), ResourceAbortEvent::EVENT_TYPE );
176 }
177
178 #[test]
179 fn test_scroll_event() {
180 let event: ScrollEvent = js!(
181 return new Event( @{ScrollEvent::EVENT_TYPE} );
182 ).try_into().unwrap();
183 assert_eq!( event.event_type(), ScrollEvent::EVENT_TYPE );
184 }
185
186 #[test]
187 fn test_ready_state_change_event() {
188 let event: ReadyStateChangeEvent = js!(
189 return new Event( @{ReadyStateChangeEvent::EVENT_TYPE} );
190 ).try_into().unwrap();
191 assert_eq!( event.event_type(), ReadyStateChangeEvent::EVENT_TYPE);
192 }
193
194 #[test]
195 fn test_submit_event() {
196 let event: SubmitEvent = js!(
197 return new Event( @{SubmitEvent::EVENT_TYPE} );
198 ).try_into().unwrap();
199 assert_eq!( event.event_type(), SubmitEvent::EVENT_TYPE);
200 }
201
202 #[test]
203 fn test_selectionchange_event() {
204 let event: SelectionChangeEvent = js!(
205 return new Event( @{SelectionChangeEvent::EVENT_TYPE} );
206 ).try_into().unwrap();
207 assert_eq!( event.event_type(), SelectionChangeEvent::EVENT_TYPE);
208 }
209}