Update web-platform-tests to revision 8119bc10583682676a3db9806c82ed4044e88e13

This commit is contained in:
WPT Sync Bot 2019-07-09 10:22:34 +00:00
parent 56f1e7cbc5
commit 3c256580fa
189 changed files with 4341 additions and 1030 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,4 @@
[characteristicProperties.https.window.html]
[HeartRate device properties]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.https.window.html]
[Characteristic is removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.https.window.html]
[Service is removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[add-multiple-event-listeners.https.window.html]
[Add multiple event listeners then readValue().]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[event-is-fired.https.window.html]
[Reading a characteristic should fire an event.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[read-succeeds.https.window.html]
[A read request succeeds and returns the characteristic's value.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[read-updates-value.https.window.html]
[Succesful read should update characteristic.value]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.https.window.html]
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-same-from-2-characteristics.https.window.html]
[Same parent service returned from multiple characteristics.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-same-object.https.window.html]
[[SameObject\] test for BluetoothRemoteGATTCharacteristic service.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[buffer-is-detached.https.window.html]
[writeValue() fails when passed a detached buffer]
expected: FAIL

View file

@ -0,0 +1,4 @@
[characteristic-is-removed.https.window.html]
[Characteristic gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[service-is-removed.https.window.html]
[Service gets removed. Reject with InvalidStateError.]
expected: FAIL

View file

@ -0,0 +1,4 @@
[write-succeeds.https.window.html]
[A regular write request to a writable characteristic should succeed.]
expected: FAIL

View file

@ -0,0 +1,55 @@
[inheritance.html]
[Property font-kerning has initial value auto]
expected: FAIL
[Property font-variant-east-asian inherits]
expected: FAIL
[Property font-variant-east-asian has initial value normal]
expected: FAIL
[Property font-variant inherits]
expected: FAIL
[Property font-variant-position inherits]
expected: FAIL
[Property font-size-adjust inherits]
expected: FAIL
[Property font-variant-ligatures has initial value normal]
expected: FAIL
[Property font-variant has initial value normal]
expected: FAIL
[Property font-variant-ligatures inherits]
expected: FAIL
[Property font-synthesis has initial value weight style]
expected: FAIL
[Property font-variant-numeric inherits]
expected: FAIL
[Property font-synthesis inherits]
expected: FAIL
[Property font-feature-settings inherits]
expected: FAIL
[Property font-feature-settings has initial value normal]
expected: FAIL
[Property font-variant-numeric has initial value normal]
expected: FAIL
[Property font-variant-position has initial value normal]
expected: FAIL
[Property font-size-adjust has initial value none]
expected: FAIL
[Property font-kerning inherits]
expected: FAIL

View file

@ -0,0 +1,25 @@
[font-feature-settings-computed.html]
[Property font-feature-settings value 'normal' computes to 'normal']
expected: FAIL
[Property font-feature-settings value '"liga" 0' computes to '"liga" 0']
expected: FAIL
[Property font-feature-settings value '"smcp"' computes to '"smcp"']
expected: FAIL
[Property font-feature-settings value '"tnum", "hist"' computes to '"tnum", "hist"']
expected: FAIL
[Property font-feature-settings value '"dlig"' computes to '"dlig"']
expected: FAIL
[Property font-feature-settings value '"c2sc"' computes to '"c2sc"']
expected: FAIL
[Property font-feature-settings value '"PKRN"' computes to '"PKRN"']
expected: FAIL
[Property font-feature-settings value '"dlig", "smcp", "dlig" 0' computes to '"dlig", "smcp", "dlig" 0']
expected: FAIL

View file

@ -0,0 +1,25 @@
[font-feature-settings-valid.html]
[e.style['font-feature-settings'\] = "'c2sc'" should set the property value]
expected: FAIL
[e.style['font-feature-settings'\] = "\\"dlig\\" 1" should set the property value]
expected: FAIL
[e.style['font-feature-settings'\] = "\\"smcp\\" on" should set the property value]
expected: FAIL
[e.style['font-feature-settings'\] = "\\"tnum\\", 'hist'" should set the property value]
expected: FAIL
[e.style['font-feature-settings'\] = "\\"PKRN\\"" should set the property value]
expected: FAIL
[e.style['font-feature-settings'\] = "\\"liga\\" off" should set the property value]
expected: FAIL
[e.style['font-feature-settings'\] = "normal" should set the property value]
expected: FAIL
[e.style['font-feature-settings'\] = "\\"dlig\\" 1, \\"smcp\\" on, \\"dlig\\" 0" should set the property value]
expected: FAIL

View file

@ -0,0 +1,10 @@
[font-kerning-computed.html]
[Property font-kerning value 'none' computes to 'none']
expected: FAIL
[Property font-kerning value 'normal' computes to 'normal']
expected: FAIL
[Property font-kerning value 'auto' computes to 'auto']
expected: FAIL

View file

@ -0,0 +1,10 @@
[font-kerning-valid.html]
[e.style['font-kerning'\] = "auto" should set the property value]
expected: FAIL
[e.style['font-kerning'\] = "none" should set the property value]
expected: FAIL
[e.style['font-kerning'\] = "normal" should set the property value]
expected: FAIL

View file

@ -0,0 +1,7 @@
[font-size-adjust-computed.html]
[Property font-size-adjust value 'none' computes to 'none']
expected: FAIL
[Property font-size-adjust value '0.5' computes to '0.5']
expected: FAIL

View file

@ -0,0 +1,7 @@
[font-size-adjust-valid.html]
[e.style['font-size-adjust'\] = "none" should set the property value]
expected: FAIL
[e.style['font-size-adjust'\] = "0.5" should set the property value]
expected: FAIL

View file

@ -0,0 +1,16 @@
[font-size-computed.html]
[<font size="4"> is font-size: large]
expected: FAIL
[<font size="2"> is font-size: small]
expected: FAIL
[<font size="7"> is font-size: xxx-large]
expected: FAIL
[<font size="6"> is font-size: xx-large]
expected: FAIL
[<font size="5"> is font-size: x-large]
expected: FAIL

View file

@ -0,0 +1,4 @@
[font-size-valid.html]
[e.style['font-size'\] = "xxx-large" should set the property value]
expected: FAIL

View file

@ -0,0 +1,13 @@
[font-synthesis-computed.html]
[Property font-synthesis value 'style' computes to 'style']
expected: FAIL
[Property font-synthesis value 'weight' computes to 'weight']
expected: FAIL
[Property font-synthesis value 'weight style' computes to 'weight style']
expected: FAIL
[Property font-synthesis value 'none' computes to 'none']
expected: FAIL

View file

@ -0,0 +1,13 @@
[font-synthesis-valid.html]
[e.style['font-synthesis'\] = "style weight" should set the property value]
expected: FAIL
[e.style['font-synthesis'\] = "weight" should set the property value]
expected: FAIL
[e.style['font-synthesis'\] = "none" should set the property value]
expected: FAIL
[e.style['font-synthesis'\] = "style" should set the property value]
expected: FAIL

View file

@ -0,0 +1,19 @@
[font-valid.html]
[message-box should be a supported system font.]
expected: FAIL
[status-bar should be a supported system font.]
expected: FAIL
[menu should be a supported system font.]
expected: FAIL
[icon should be a supported system font.]
expected: FAIL
[small-caption should be a supported system font.]
expected: FAIL
[caption should be a supported system font.]
expected: FAIL

View file

@ -0,0 +1,16 @@
[font-variant-caps-computed.html]
[Property font-variant-caps value 'unicase' computes to 'unicase']
expected: FAIL
[Property font-variant-caps value 'titling-caps' computes to 'titling-caps']
expected: FAIL
[Property font-variant-caps value 'all-small-caps' computes to 'all-small-caps']
expected: FAIL
[Property font-variant-caps value 'all-petite-caps' computes to 'all-petite-caps']
expected: FAIL
[Property font-variant-caps value 'petite-caps' computes to 'petite-caps']
expected: FAIL

View file

@ -0,0 +1,16 @@
[font-variant-caps-valid.html]
[e.style['font-variant-caps'\] = "all-petite-caps" should set the property value]
expected: FAIL
[e.style['font-variant-caps'\] = "all-small-caps" should set the property value]
expected: FAIL
[e.style['font-variant-caps'\] = "unicase" should set the property value]
expected: FAIL
[e.style['font-variant-caps'\] = "petite-caps" should set the property value]
expected: FAIL
[e.style['font-variant-caps'\] = "titling-caps" should set the property value]
expected: FAIL

View file

@ -0,0 +1,37 @@
[font-variant-east-asian-computed.html]
[Property font-variant-east-asian value 'jis90' computes to 'jis90']
expected: FAIL
[Property font-variant-east-asian value 'simplified' computes to 'simplified']
expected: FAIL
[Property font-variant-east-asian value 'jis04' computes to 'jis04']
expected: FAIL
[Property font-variant-east-asian value 'full-width' computes to 'full-width']
expected: FAIL
[Property font-variant-east-asian value 'proportional-width' computes to 'proportional-width']
expected: FAIL
[Property font-variant-east-asian value 'normal' computes to 'normal']
expected: FAIL
[Property font-variant-east-asian value 'simplified full-width ruby' computes to 'simplified full-width ruby']
expected: FAIL
[Property font-variant-east-asian value 'jis78 proportional-width' computes to 'jis78 proportional-width']
expected: FAIL
[Property font-variant-east-asian value 'jis78' computes to 'jis78']
expected: FAIL
[Property font-variant-east-asian value 'jis83' computes to 'jis83']
expected: FAIL
[Property font-variant-east-asian value 'ruby' computes to 'ruby']
expected: FAIL
[Property font-variant-east-asian value 'traditional' computes to 'traditional']
expected: FAIL

View file

@ -0,0 +1,37 @@
[font-variant-east-asian-valid.html]
[e.style['font-variant-east-asian'\] = "jis83" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "ruby full-width simplified" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "jis78 proportional-width" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "jis04" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "normal" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "ruby" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "proportional-width" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "jis90" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "jis78" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "full-width" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "simplified" should set the property value]
expected: FAIL
[e.style['font-variant-east-asian'\] = "traditional" should set the property value]
expected: FAIL

View file

@ -0,0 +1,31 @@
[font-variant-ligatures-computed.html]
[Property font-variant-ligatures value 'none' computes to 'none']
expected: FAIL
[Property font-variant-ligatures value 'historical-ligatures' computes to 'historical-ligatures']
expected: FAIL
[Property font-variant-ligatures value 'discretionary-ligatures' computes to 'discretionary-ligatures']
expected: FAIL
[Property font-variant-ligatures value 'normal' computes to 'normal']
expected: FAIL
[Property font-variant-ligatures value 'no-historical-ligatures' computes to 'no-historical-ligatures']
expected: FAIL
[Property font-variant-ligatures value 'no-common-ligatures' computes to 'no-common-ligatures']
expected: FAIL
[Property font-variant-ligatures value 'contextual' computes to 'contextual']
expected: FAIL
[Property font-variant-ligatures value 'common-ligatures' computes to 'common-ligatures']
expected: FAIL
[Property font-variant-ligatures value 'no-discretionary-ligatures' computes to 'no-discretionary-ligatures']
expected: FAIL
[Property font-variant-ligatures value 'no-contextual' computes to 'no-contextual']
expected: FAIL

View file

@ -0,0 +1,31 @@
[font-variant-ligatures-valid.html]
[e.style['font-variant-ligatures'\] = "contextual" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "historical-ligatures" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "normal" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "no-historical-ligatures" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "none" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "no-discretionary-ligatures" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "common-ligatures" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "no-common-ligatures" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "discretionary-ligatures" should set the property value]
expected: FAIL
[e.style['font-variant-ligatures'\] = "no-contextual" should set the property value]
expected: FAIL

View file

@ -0,0 +1,34 @@
[font-variant-numeric-computed.html]
[Property font-variant-numeric value 'lining-nums' computes to 'lining-nums']
expected: FAIL
[Property font-variant-numeric value 'diagonal-fractions' computes to 'diagonal-fractions']
expected: FAIL
[Property font-variant-numeric value 'normal' computes to 'normal']
expected: FAIL
[Property font-variant-numeric value 'proportional-nums' computes to 'proportional-nums']
expected: FAIL
[Property font-variant-numeric value 'lining-nums proportional-nums stacked-fractions ordinal slashed-zero' computes to 'lining-nums proportional-nums stacked-fractions ordinal slashed-zero']
expected: FAIL
[Property font-variant-numeric value 'ordinal' computes to 'ordinal']
expected: FAIL
[Property font-variant-numeric value 'oldstyle-nums tabular-nums diagonal-fractions' computes to 'oldstyle-nums tabular-nums diagonal-fractions']
expected: FAIL
[Property font-variant-numeric value 'oldstyle-nums' computes to 'oldstyle-nums']
expected: FAIL
[Property font-variant-numeric value 'tabular-nums' computes to 'tabular-nums']
expected: FAIL
[Property font-variant-numeric value 'stacked-fractions' computes to 'stacked-fractions']
expected: FAIL
[Property font-variant-numeric value 'slashed-zero' computes to 'slashed-zero']
expected: FAIL

View file

@ -0,0 +1,34 @@
[font-variant-numeric-valid.html]
[e.style['font-variant-numeric'\] = "normal" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "diagonal-fractions" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "oldstyle-nums" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "lining-nums" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "oldstyle-nums tabular-nums diagonal-fractions" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "stacked-fractions" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "tabular-nums" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "ordinal" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "proportional-nums" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "slashed-zero ordinal stacked-fractions proportional-nums lining-nums" should set the property value]
expected: FAIL
[e.style['font-variant-numeric'\] = "slashed-zero" should set the property value]
expected: FAIL

View file

@ -0,0 +1,10 @@
[font-variant-position-computed.html]
[Property font-variant-position value 'sub' computes to 'sub']
expected: FAIL
[Property font-variant-position value 'super' computes to 'super']
expected: FAIL
[Property font-variant-position value 'normal' computes to 'normal']
expected: FAIL

View file

@ -0,0 +1,10 @@
[font-variant-position-valid.html]
[e.style['font-variant-position'\] = "normal" should set the property value]
expected: FAIL
[e.style['font-variant-position'\] = "super" should set the property value]
expected: FAIL
[e.style['font-variant-position'\] = "sub" should set the property value]
expected: FAIL

View file

@ -17,3 +17,6 @@
[After setting a transition's effect to null, style is updated]
expected: FAIL
[After setting a transition's effect to null, a new transition can be started]
expected: FAIL

View file

@ -0,0 +1,10 @@
[caret-color-computed.html]
[Property caret-color value 'currentColor' computes to 'rgb(0, 0, 255)']
expected: FAIL
[Property caret-color value 'auto' computes to 'rgb(0, 0, 255)']
expected: FAIL
[Property caret-color value 'red' computes to 'rgb(255, 0, 0)']
expected: FAIL

View file

@ -318,12 +318,18 @@
[<iframe>: separate response Content-Type: text/plain */*]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;x=" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html;" \\" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/plain */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" text/plain]
expected: FAIL
[<iframe>: separate response Content-Type: text/html */*;charset=gbk]
expected: FAIL
[<iframe>: combined response Content-Type: text/html;" \\" text/plain]
expected: FAIL

View file

@ -59,6 +59,3 @@
[separate text/javascript;charset=windows-1252 error text/javascript]
expected: FAIL
[separate text/javascript;charset=windows-1252 text/javascript]
expected: FAIL

View file

@ -11,12 +11,6 @@
[X-Content-Type-Options%3A%20nosniff%0C]
expected: FAIL
[X-Content-Type-Options%3A%20'NosniFF']
expected: FAIL
[X-Content-Type-Options%3A%20%22nosniFF%22]
expected: FAIL
[X-Content-Type-Options%3A%20%2Cnosniff]
[X-Content-Type-Options%3A%20no%0D%0AX-Content-Type-Options%3A%20nosniff]
expected: FAIL

View file

@ -1,4 +1,4 @@
[traverse_the_history_4.html]
[traverse_the_history_5.html]
[Multiple history traversals, last would be aborted]
expected: FAIL

View file

@ -1,48 +1,32 @@
[open-features-non-integer-width.html]
type: testharness
expected: TIMEOUT
[HTML: window.open `features`: non-integer values for feature `width`]
expected: FAIL
[features "width=405^4" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405.5" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405e1" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405 " should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405.32" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405LLl" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405*3" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405e-1" should set "width=405"]
expected: TIMEOUT
expected: FAIL
[features "width=405/5" should set "width=405"]
expected: TIMEOUT
[top=0,left=0: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=_404" should NOT set "width=404"]
expected: TIMEOUT
[top=0,left=0,height=401,: absence of feature "width" should be treated same as "width=0"]
expected: TIMEOUT
[features "width=/404" should NOT set "width=404"]
expected: TIMEOUT
[features "width=L404" should NOT set "width=404"]
expected: TIMEOUT
expected: FAIL

View file

@ -0,0 +1,7 @@
[toggleEvent.html]
[Calling open twice on 'details' fires only one toggle event]
expected: FAIL
[Setting open=true to opened 'details' element should not fire a toggle event at the 'details' element]
expected: FAIL

View file

@ -0,0 +1,9 @@
[buffered-flag-after-timeout.any.html]
[PerformanceObserver with buffered flag sees entry after timeout]
expected: FAIL
[buffered-flag-after-timeout.any.worker.html]
[PerformanceObserver with buffered flag sees entry after timeout]
expected: FAIL

View file

@ -0,0 +1,9 @@
[buffered-flag-observer.any.html]
[PerformanceObserver with buffered flag should see past and future entries.]
expected: FAIL
[buffered-flag-observer.any.worker.html]
[PerformanceObserver with buffered flag should see past and future entries.]
expected: FAIL

View file

@ -0,0 +1,11 @@
[multiple-buffered-flag-observers.any.html]
expected: ERROR
[Multiple PerformanceObservers with buffered flag see all entries]
expected: TIMEOUT
[multiple-buffered-flag-observers.any.worker.html]
expected: ERROR
[Multiple PerformanceObservers with buffered flag see all entries]
expected: TIMEOUT

View file

@ -0,0 +1,9 @@
[observer-buffered-false.any.html]
[PerformanceObserver without buffered flag set to false cannot see past entries.]
expected: FAIL
[observer-buffered-false.any.worker.html]
[PerformanceObserver without buffered flag set to false cannot see past entries.]
expected: FAIL

View file

@ -14,3 +14,6 @@
[The iframe should have one resource timing entry.]
expected: FAIL
[responseEnd should not be 0 in timing-allow cross-origin request.]
expected: FAIL

View file

@ -71,3 +71,9 @@
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 9.8276454210281372e-1 at index of 39267.\n\t[39267\]\t1.7243747130372099e-22\t-9.8276454210281372e-1\t9.8276454210281372e-1\t1.0000000000000000e+0\t3.8985999999999999e-3\n\tMax RelError of 3.3137802965303198e+0 at index of 1253.\n\t[1253\]\t-4.3022233992815018e-2\t-9.9732093513011932e-3\t3.3049024641513824e-2\t3.3137802965303198e+0\t3.8985999999999999e-3\n]
expected: FAIL
[X SNR (16.93160787588116 dB) is not greater than or equal to 65.737. Got 16.93160787588116.]
expected: FAIL
[X Stitched sine-wave buffers at sample rate 43800 does not equal [0,0.06264832615852356,0.12505052983760834,0.18696144223213196,0.24813786149024963,0.308339387178421,0.36732959747314453,0.4248766601085663,0.480754554271698,0.5347436666488647,0.5866320133209229,0.6362156271934509,0.6832997798919678,0.7276994585990906,0.7692402601242065,0.8077589869499207...\] with an element-wise tolerance of {"absoluteThreshold":0.0038986,"relativeThreshold":0}.\n\tIndex\tActual\t\t\tExpected\t\tAbsError\t\tRelError\t\tTest threshold\n\t[30\]\t9.4836157560348511e-1\t9.5236867666244507e-1\t4.0071010589599609e-3\t4.2075103446311962e-3\t3.8985999999999999e-3\n\t[31\]\t9.2646563053131104e-1\t9.3139332532882690e-1\t4.9276947975158691e-3\t5.2906700783754857e-3\t3.8985999999999999e-3\n\t[32\]\t9.0087991952896118e-1\t9.0675884485244751e-1\t5.8789253234863281e-3\t6.4834496590358351e-3\t3.8985999999999999e-3\n\t[33\]\t8.7170630693435669e-1\t8.7856203317642212e-1\t6.8557262420654297e-3\t7.8033490899654511e-3\t3.8985999999999999e-3\n\t[34\]\t8.3906102180480957e-1\t8.4691369533538818e-1\t7.8526735305786133e-3\t9.2721059699818163e-3\t3.8985999999999999e-3\n\t...and 31037 more errors.\n\tMax AbsError of 1.3937766373157501e+1 at index of 39267.\n\t[39267\]\t1.2955001831054688e+1\t-9.8276454210281372e-1\t1.3937766373157501e+1\t1.4182203138235909e+1\t3.8985999999999999e-3\n\tMax RelError of 2.0553654218963288e+1 at index of 20238.\n\t[20238\]\t9.3026428222656250e+0\t-4.7574958205223083e-1\t9.7783924043178558e+0\t2.0553654218963288e+1\t3.8985999999999999e-3\n]
expected: FAIL

View file

@ -5,3 +5,6 @@
[test_get_current_url_nested_browsing_context]
expected: FAIL
[test_get_current_url_nested_browsing_contexts]
expected: FAIL

View file

@ -32,3 +32,9 @@
[test_no_browsing_context]
expected: ERROR
[test_frame_id_webelement_no_frame_element]
expected: FAIL
[test_null_response_value]
expected: FAIL

View file

@ -225,6 +225,8 @@ jobs:
- template: tools/ci/azure/update_manifest.yml
- script: python ./wpt run --yes --no-manifest-update --install-fonts --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel dev edgechromium infrastructure/
displayName: 'Run tests (Edge Dev)'
- script: python ./wpt run --yes --no-manifest-update --install-fonts --manifest MANIFEST.json --metadata infrastructure/metadata/ --log-tbpl - --log-tbpl-level info --channel canary edgechromium infrastructure/
displayName: 'Run tests (Edge Canary)'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:
@ -258,6 +260,8 @@ jobs:
- template: tools/ci/azure/update_manifest.yml
- script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info --channel dev edgechromium
displayName: 'Run tests (Edge Dev)'
- script: python ./wpt run --yes --no-manifest-update --no-restart-on-unexpected --no-fail-on-unexpected --install-fonts --this-chunk $(System.JobPositionInPhase) --total-chunks $(System.TotalJobsInPhase) --chunk-type hash --log-wptreport $(Build.ArtifactStagingDirectory)/wpt_report_$(System.JobPositionInPhase).json --log-wptscreenshot $(Build.ArtifactStagingDirectory)/wpt_screenshot_$(System.JobPositionInPhase).txt --log-tbpl - --log-tbpl-level info --channel canary edgechromium
displayName: 'Run tests (Edge Canary)'
- task: PublishBuildArtifacts@1
displayName: 'Publish results'
inputs:

View file

@ -24,9 +24,9 @@ infrastructure.
[Web Bluetooth Testing API]: https://docs.google.com/document/d/1Nhv_oVDCodd1pEH_jj9k8gF4rPGb_84VYaZ9IG8M_WY/
# Generated gen-* files from generator.py
# Generated gen-* files from generate.py
`generator.py` builds `gen-*.html` tests using templates in
`generate.py` builds `gen-*.html` tests using templates in
`script-tests/*/*.js`.
The subdirectory structure in `bluetooth/script-test/*` is recreated into

View file

@ -1,29 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'HeartRate device properties';
bluetooth_test(
() => getHealthThermometerService()
.then(({service}) => Promise.all([
service.getCharacteristic('temperature_measurement'),
service.getCharacteristic('measurement_interval')
]))
.then(([temperature_measurement, measurement_interval]) => {
let tm_expected_properties =
new TestCharacteristicProperties(['indicate']);
assert_properties_equal(
temperature_measurement.properties, tm_expected_properties);
let mi_expected_properties = new TestCharacteristicProperties(
['read', 'write', 'indicate']);
assert_properties_equal(
measurement_interval.properties, mi_expected_properties);
}),
test_desc);
</script>

View file

@ -0,0 +1,23 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'HeartRate device properties';
bluetooth_test(async () => {
const {service} = await getHealthThermometerService()
const [temperature_measurement, measurement_interval] = await Promise.all([
service.getCharacteristic('temperature_measurement'),
service.getCharacteristic('measurement_interval')
]);
const tm_expected_properties = new TestCharacteristicProperties(['indicate']);
assert_properties_equal(
temperature_measurement.properties, tm_expected_properties);
const mi_expected_properties =
new TestCharacteristicProperties(['read', 'write', 'indicate']);
assert_properties_equal(
measurement_interval.properties, mi_expected_properties);
}, test_desc);

View file

@ -1,22 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Characteristic is removed. Reject with InvalidStateError.';
const expected = new DOMException('GATT Characteristic no longer exists.',
'InvalidStateError');
let characteristic, fake_characteristic;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_characteristic} = _))
.then(() => fake_characteristic.remove())
.then(() => assert_promise_rejects_with_message(
characteristic.startNotifications(),
expected,
'Characteristic got removed.')),
test_desc);
</script>

View file

@ -0,0 +1,18 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Characteristic is removed. Reject with InvalidStateError.';
const expected = new DOMException(
'GATT Characteristic no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
await fake_characteristic.remove();
await assert_promise_rejects_with_message(
characteristic.startNotifications(), expected,
'Characteristic got removed.');
}, test_desc);

View file

@ -1,23 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Service is removed. Reject with InvalidStateError.';
const expected = new DOMException('GATT Service no longer exists.',
'InvalidStateError');
let characteristic, fake_peripheral, fake_service;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_peripheral, fake_service} = _))
.then(() => fake_service.remove())
.then(() => fake_peripheral.simulateGATTServicesChanged())
.then(() => assert_promise_rejects_with_message(
characteristic.startNotifications(),
expected,
'Service got removed.')),
test_desc);
</script>

View file

@ -0,0 +1,18 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Service is removed. Reject with InvalidStateError.';
const expected =
new DOMException('GATT Service no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_peripheral, fake_service} =
await getMeasurementIntervalCharacteristic();
await fake_service.remove();
await fake_peripheral.simulateGATTServicesChanged();
await assert_promise_rejects_with_message(
characteristic.startNotifications(), expected, 'Service got removed.');
}, test_desc);

View file

@ -1,28 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Add multiple event listeners then readValue().';
let characteristic, fake_characteristic;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_characteristic} = _))
.then(() => fake_characteristic.setNextReadResponse(GATT_SUCCESS, [0,1,2]))
.then(() => assert_promise_resolves_after_event(
characteristic,
'readValue',
'characteristicvaluechanged',
3 /* attach 3 listeners */))
.then(results => {
let read_value = new Uint8Array(results[0].buffer);
let event_values = results.slice(1).map(v => new Uint8Array(v.buffer));
for (let event_value of event_values) {
assert_equals(event_value.buffer, read_value.buffer);
assert_array_equals(event_value, read_value);
}
}), test_desc);
</script>

View file

@ -0,0 +1,26 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Add multiple event listeners then readValue().';
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
await fake_characteristic.setNextReadResponse(GATT_SUCCESS, [0, 1, 2]);
// Make sure that |characteristic.readValue()| resolves after
// |characteristicvaluechanged| is fired |3| times.
const results = await assert_promise_resolves_after_event(
characteristic /* object */, 'readValue' /* func */,
'characteristicvaluechanged' /* event */, 3 /* num_listeners */);
const read_value = new Uint8Array(results[0].buffer);
const event_values = results.slice(1).map(v => new Uint8Array(v.buffer));
for (const event_value of event_values) {
assert_equals(event_value.buffer, read_value.buffer);
assert_array_equals(event_value, read_value);
}
}, test_desc);

View file

@ -1,22 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException('GATT Characteristic no longer exists.',
'InvalidStateError');
let characteristic, fake_characteristic;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_characteristic} = _))
.then(() => fake_characteristic.remove())
.then(() => assert_promise_rejects_with_message(
characteristic.readValue(),
expected,
'Characteristic got removed.')),
test_desc);
</script>

View file

@ -0,0 +1,17 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException(
'GATT Characteristic no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
await fake_characteristic.remove();
await assert_promise_rejects_with_message(
characteristic.readValue(), expected, 'Characteristic got removed.');
}, test_desc);

View file

@ -1,27 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Reading a characteristic should fire an event.';
let characteristic, fake_characteristic;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_characteristic} = _))
.then(() => fake_characteristic.setNextReadResponse(
GATT_SUCCESS, [0, 1, 2]))
.then(() => assert_promise_resolves_after_event(
characteristic,
'readValue',
'characteristicvaluechanged'))
.then(results => new Promise(resolve => {
let read_value = new Uint8Array(results[0].buffer);
let event_value = new Uint8Array(results[1].buffer);
assert_equals(event_value.buffer, read_value.buffer);
assert_array_equals(event_value, read_value);
resolve();
})), test_desc);
</script>

View file

@ -0,0 +1,24 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Reading a characteristic should fire an event.';
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
await fake_characteristic.setNextReadResponse(GATT_SUCCESS, [0, 1, 2]);
// Make sure that |characteristic.readValue()| resolves after
// |characteristicvaluechanged| is fired.
const results = await assert_promise_resolves_after_event(
characteristic /* object */, 'readValue' /* func */,
'characteristicvaluechanged' /* event */);
const read_value = new Uint8Array(results[0].buffer);
const event_value = new Uint8Array(results[1].buffer);
assert_equals(event_value.buffer, read_value.buffer);
assert_array_equals(event_value, read_value);
}, test_desc);

View file

@ -1,24 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'A read request succeeds and returns the characteristic\'s ' +
'value.';
const EXPECTED_VALUE = [0, 1, 2];
let characteristic, fake_characteristic;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_characteristic} = _))
.then(() => fake_characteristic.setNextReadResponse(
GATT_SUCCESS,
EXPECTED_VALUE))
.then(() => characteristic.readValue())
.then(value => assert_array_equals(
new Uint8Array(value.buffer),
EXPECTED_VALUE)),
test_desc);
</script>

View file

@ -0,0 +1,17 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'A read request succeeds and returns the characteristic\'s ' +
'value.';
const EXPECTED_VALUE = [0, 1, 2];
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
await fake_characteristic.setNextReadResponse(GATT_SUCCESS, EXPECTED_VALUE);
const value = await characteristic.readValue();
assert_array_equals(new Uint8Array(value.buffer), EXPECTED_VALUE)
}, test_desc);

View file

@ -1,23 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Succesful read should update characteristic.value';
const EXPECTED_VALUE = [0, 1, 2];
let characteristic, fake_characteristic;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_characteristic} = _))
.then(() => assert_equals(characteristic.value, null))
.then(() => fake_characteristic.setNextReadResponse(
GATT_SUCCESS, EXPECTED_VALUE))
.then(() => characteristic.readValue())
.then(() => assert_array_equals(
new Uint8Array(characteristic.value.buffer),
EXPECTED_VALUE)),
test_desc);
</script>

View file

@ -0,0 +1,18 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
const test_desc = 'Succesful read should update characteristic.value';
const EXPECTED_VALUE = [0, 1, 2];
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
assert_equals(characteristic.value, null);
await fake_characteristic.setNextReadResponse(GATT_SUCCESS, EXPECTED_VALUE);
await characteristic.readValue();
assert_array_equals(
new Uint8Array(characteristic.value.buffer), EXPECTED_VALUE)
}, test_desc);

View file

@ -1,23 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Service gets removed. Reject with InvalidStateError.';
const expected = new DOMException('GATT Service no longer exists.',
'InvalidStateError');
let characteristic, fake_peripheral, fake_service;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_peripheral, fake_service} = _))
.then(() => fake_service.remove())
.then(() => fake_peripheral.simulateGATTServicesChanged())
.then(() => assert_promise_rejects_with_message(
characteristic.readValue(),
expected,
'Service got removed.')),
test_desc);
</script>

View file

@ -0,0 +1,18 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Service gets removed. Reject with InvalidStateError.';
const expected =
new DOMException('GATT Service no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_peripheral, fake_service} =
await getMeasurementIntervalCharacteristic();
await fake_service.remove();
await fake_peripheral.simulateGATTServicesChanged();
await assert_promise_rejects_with_message(
characteristic.readValue(), expected, 'Service got removed.')
}, test_desc);

View file

@ -1,21 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Same parent service returned from multiple characteristics.';
bluetooth_test(
() => getHealthThermometerService()
.then(({service}) => Promise.all([
service.getCharacteristic('measurement_interval'),
service.getCharacteristic('temperature_measurement')
]))
.then(
characteristics => assert_equals(
characteristics[0].service, characteristics[1].service)),
test_desc);
</script>

View file

@ -0,0 +1,16 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Same parent service returned from multiple characteristics.';
bluetooth_test(async () => {
const {service} = await getHealthThermometerService();
const characteristics = await Promise.all([
service.getCharacteristic('measurement_interval'),
service.getCharacteristic('temperature_measurement')
]);
assert_equals(characteristics[0].service, characteristics[1].service);
}, test_desc);

View file

@ -1,17 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = '[SameObject] test for BluetoothRemoteGATTCharacteristic ' +
'service.';
bluetooth_test(
() => getMeasurementIntervalCharacteristic().then(
({characteristic}) =>
assert_equals(characteristic.service, characteristic.service)),
test_desc);
</script>

View file

@ -0,0 +1,13 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = '[SameObject] test for BluetoothRemoteGATTCharacteristic ' +
'service.';
bluetooth_test(async () => {
const {characteristic} = await getMeasurementIntervalCharacteristic();
assert_equals(characteristic.service, characteristic.service);
}, test_desc);

View file

@ -1,28 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
function detachBuffer(buffer) {
window.postMessage('', '*', [buffer]);
}
bluetooth_test(async (t) => {
let {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
let typed_array = Uint8Array.of(1, 2);
detachBuffer(typed_array.buffer);
await promise_rejects(
t, 'InvalidStateError', characteristic.writeValue(typed_array));
let array_buffer = Uint8Array.of(3, 4).buffer;
detachBuffer(array_buffer);
await promise_rejects(
t, 'InvalidStateError', characteristic.writeValue(array_buffer));
}, 'writeValue() fails when passed a detached buffer');
</script>

View file

@ -0,0 +1,25 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'writeValue() fails when passed a detached buffer';
function detachBuffer(buffer) {
window.postMessage('', '*', [buffer]);
}
bluetooth_test(async (t) => {
const {characteristic} = await getMeasurementIntervalCharacteristic();
const typed_array = Uint8Array.of(1, 2);
detachBuffer(typed_array.buffer);
await promise_rejects(
t, 'InvalidStateError', characteristic.writeValue(typed_array));
const array_buffer = Uint8Array.of(3, 4).buffer;
detachBuffer(array_buffer);
await promise_rejects(
t, 'InvalidStateError', characteristic.writeValue(array_buffer));
}, test_desc);

View file

@ -1,22 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException('GATT Characteristic no longer exists.',
'InvalidStateError');
let characteristic, fake_characteristic;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_characteristic} = _))
.then(() => fake_characteristic.remove())
.then(() => assert_promise_rejects_with_message(
characteristic.writeValue(new ArrayBuffer(1 /* length */)),
expected,
'Characteristic got removed.')),
test_desc);
</script>

View file

@ -0,0 +1,18 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Characteristic gets removed. Reject with InvalidStateError.';
const expected = new DOMException(
'GATT Characteristic no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
await fake_characteristic.remove();
await assert_promise_rejects_with_message(
characteristic.writeValue(new ArrayBuffer(1 /* length */)), expected,
'Characteristic got removed.');
}, test_desc);

View file

@ -1,23 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'Service gets removed. Reject with InvalidStateError.';
const expected = new DOMException('GATT Service no longer exists.',
'InvalidStateError');
let characteristic, fake_peripheral, fake_service;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_peripheral, fake_service} = _))
.then(() => fake_service.remove())
.then(() => fake_peripheral.simulateGATTServicesChanged())
.then(() => assert_promise_rejects_with_message(
characteristic.writeValue(new ArrayBuffer(1 /* length */)),
expected,
'Service got removed.')),
test_desc);
</script>

View file

@ -0,0 +1,19 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'Service gets removed. Reject with InvalidStateError.';
const expected =
new DOMException('GATT Service no longer exists.', 'InvalidStateError');
bluetooth_test(async () => {
const {characteristic, fake_peripheral, fake_service} =
await getMeasurementIntervalCharacteristic();
await fake_service.remove();
await fake_peripheral.simulateGATTServicesChanged();
await assert_promise_rejects_with_message(
characteristic.writeValue(new ArrayBuffer(1 /* length */)), expected,
'Service got removed.');
}, test_desc);

View file

@ -1,41 +0,0 @@
<!DOCTYPE html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="/bluetooth/resources/bluetooth-helpers.js"></script>
<script>
'use strict';
const test_desc = 'A regular write request to a writable characteristic ' +
'should succeed.';
let typed_array = Uint8Array.of(1, 2);
let array_buffer = Uint8Array.of(3, 4).buffer;
let data_view = new DataView(new ArrayBuffer(2));
let characteristic, fake_characteristic;
bluetooth_test(() => getMeasurementIntervalCharacteristic()
.then(_ => ({characteristic, fake_characteristic} = _))
.then(() => new Promise(resolve => {
data_view.setUint8(0, 5);
data_view.setUint8(1, 6);
resolve();
}))
.then(() => fake_characteristic.getLastWrittenValue())
.then(last_value => assert_true(last_value === null))
.then(() => fake_characteristic.setNextWriteResponse(GATT_SUCCESS))
.then(() => characteristic.writeValue(typed_array))
.then(() => fake_characteristic.getLastWrittenValue())
.then(last_value => assert_array_equals(last_value, [1, 2]))
.then(() => fake_characteristic.setNextWriteResponse(GATT_SUCCESS))
.then(() => characteristic.writeValue(array_buffer))
.then(() => fake_characteristic.getLastWrittenValue())
.then(last_value => assert_array_equals(last_value, [3, 4]))
.then(() => fake_characteristic.setNextWriteResponse(GATT_SUCCESS))
.then(() => characteristic.writeValue(data_view))
.then(() => fake_characteristic.getLastWrittenValue())
.then(last_value => assert_array_equals(last_value, [5, 6])),
test_desc);
</script>

View file

@ -0,0 +1,39 @@
// META: script=/resources/testharness.js
// META: script=/resources/testharnessreport.js
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=/bluetooth/resources/bluetooth-helpers.js
'use strict';
const test_desc = 'A regular write request to a writable characteristic ' +
'should succeed.';
bluetooth_test(async () => {
const {characteristic, fake_characteristic} =
await getMeasurementIntervalCharacteristic();
let last_value = await fake_characteristic.getLastWrittenValue();
assert_equals(last_value, null);
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
const typed_array = Uint8Array.of(1, 2);
await characteristic.writeValue(typed_array);
last_value = await fake_characteristic.getLastWrittenValue();
assert_array_equals(last_value, [1, 2]);
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
const array_buffer = Uint8Array.of(3, 4).buffer;
await characteristic.writeValue(array_buffer);
last_value = await fake_characteristic.getLastWrittenValue();
assert_array_equals(last_value, [3, 4]);
await fake_characteristic.setNextWriteResponse(GATT_SUCCESS);
const data_view = new DataView(new ArrayBuffer(2));
data_view.setUint8(0, 5);
data_view.setUint8(1, 6);
await characteristic.writeValue(data_view);
last_value = await fake_characteristic.getLastWrittenValue();
assert_array_equals(last_value, [5, 6]);
}, test_desc);

View file

@ -0,0 +1,17 @@
<!DOCTYPE html>
<link rel="help" href="https://crbug.com/981602">
<link rel="author" href="mailto:kojii@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<style>
.class6 { writing-mode: vertical-rl; }
</style>
<svg>
<radialGradient id="svgvar00004">
<pattern>
<foreignObject>
<pre class="class6">
<svg>
<polyline fill="url(#svgvar00004) red">
</svg>
<script>test(() => {});</script>

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Backgrounds and Borders Module Level 3: getComputedStyle().boxShadow</title>
<link rel="help" href="https://drafts.csswg.org/css-backgrounds/#box-shadow">
<meta name="assert" content="box-shadow computes to none or a list.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
<style>
#target {
color: blue;
font-size: 20px;
}
</style>
</head>
<body>
<div id="target"></div>
<script>
'use strict';
const currentColor = 'rgb(0, 0, 255)';
test_computed_value('box-shadow', 'none');
test_computed_value('box-shadow', '1px 2px', currentColor + ' 1px 2px 0px 0px');
test_computed_value('box-shadow', 'currentcolor -1em -2em 3em -4em', currentColor + ' -20px -40px 60px -80px');
test_computed_value('box-shadow', 'rgb(0, 255, 0) 1px 2px 3px 4px inset');
</script>
</body>
</html>

View file

@ -6,7 +6,7 @@
<link rel="author" title="Gérard Talbot" href="http://www.gtalbot.org/BrowserBugsSection/css21testsuite/">
<link rel="help" href="https://www.w3.org/TR/css-contain-1/#containment-style">
<link rel="match" href="reference/contain-style-counters-003-ref.html">
<link rel="match" href="reference/contain-style-counters-004-ref.html">
<meta name="flags" content="">
@ -63,8 +63,10 @@
<p> <span></span> <span></span> <span></span> <span></span>
<!-- 4 span inside the <p> -->
<!-- 4 span inside the <p>. However, since div isn't a sibling of spans,
it creates a new counter.
-->
<p>Test passes if there is the number 20.
<p>Test passes if there is the number 0.
<div></div>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<meta charset="UTF-8">
<title>CSS Reference Test</title>
<link rel="author" title="Vladimir Levin" href="mailto:vmpstr@chromium.org">
<style>
div
{
font-size: 3em;
}
</style>
<p>Test passes if there is the number 0.
<div>0</div>

View file

@ -0,0 +1,48 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Inheritance of CSS Fonts Level 3 properties</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#property-index">
<link rel="help" href="https://www.w3.org/TR/css-fonts-4/#font-stretch-prop">
<meta name="assert" content="Properties inherit according to the spec.">
<meta name="assert" content="Properties have initial values according to the spec.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/inheritance-testcommon.js"></script>
<style>
#box {
font: initial;
font-size: medium;
}
</style>
</head>
<body>
<div id="box"></div>
<div id="container">
<div id="target"></div>
</div>
<script>
'use strict';
const box = document.getElementById('box');
const initialFontFamily = getComputedStyle(box).fontFamily;
const mediumFontSize = getComputedStyle(box).fontSize;
assert_inherited('font-family', initialFontFamily, '"Not Initial!"');
assert_inherited('font-feature-settings', 'normal', '"smcp", "swsh" 2');
assert_inherited('font-kerning', 'auto', 'none');
assert_inherited('font-size', mediumFontSize /* medium */, '123px');
assert_inherited('font-size-adjust', 'none', '1.5');
assert_inherited('font-stretch', '100%' /* normal */, '75%');
assert_inherited('font-style', 'normal', 'italic');
assert_inherited('font-synthesis', 'weight style', 'none');
assert_inherited('font-variant', 'normal', 'none');
assert_inherited('font-variant-caps', 'normal', 'small-caps');
assert_inherited('font-variant-east-asian', 'normal', 'ruby');
assert_inherited('font-variant-ligatures', 'normal', 'none');
assert_inherited('font-variant-numeric', 'normal', 'ordinal');
assert_inherited('font-variant-position', 'normal', 'super');
assert_inherited('font-weight', '400' /* normal */, '900');
</script>
</body>
</html>

View file

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: getComputedValue().fontFamily</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-family-prop">
<meta name="assert" content="font-family computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value('font-family', 'serif');
test_computed_value('font-family', 'sans-serif');
test_computed_value('font-family', 'cursive');
test_computed_value('font-family', 'fantasy');
test_computed_value('font-family', 'monospace');
test_computed_value('font-family', 'serif, sans-serif, cursive, fantasy, monospace');
test_computed_value('font-family', 'Helvetica, Verdana, sans-serif');
test_computed_value('font-family', '"New Century Schoolbook", serif');
test_computed_value('font-family', '"21st Century", fantasy');
test_computed_value('font-family', '"inherit", "serif"');
</script>
</body>
</html>

View file

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: parsing font-family with invalid values</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-family-prop">
<meta name="assert" content="font-family supports only the grammar '[ <family-name> | <generic-family> ] #'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value('font-family', 'cursive serif');
test_invalid_value('font-family', 'Red/Black, sans-serif');
test_invalid_value('font-family', '"Lucida" Grande, sans-serif');
test_invalid_value('font-family', 'Ahem!, sans-serif');
test_invalid_value('font-family', 'test@foo, sans-serif');
test_invalid_value('font-family', '#POUND, sans-serif');
test_invalid_value('font-family', 'Hawaii 5-0, sans-serif');
</script>
</body>
</html>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: parsing font-family with valid values</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-family-prop">
<meta name="assert" content="font-family supports the full grammar '[ <family-name> | <generic-family> ] #'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value('font-family', 'Serif', 'serif');
test_valid_value('font-family', 'Sans-Serif', 'sans-serif');
test_valid_value('font-family', 'Cursive', 'cursive');
test_valid_value('font-family', 'Fantasy', 'fantasy');
test_valid_value('font-family', 'Monospace', 'monospace');
test_valid_value('font-family', 'serif, sans-serif, cursive, fantasy, monospace');
test_valid_value('font-family', 'Helvetica, Verdana, sans-serif');
test_valid_value('font-family', '"New Century Schoolbook", serif');
test_valid_value('font-family', "'21st Century', fantasy", '"21st Century", fantasy');
test_valid_value('font-family', '"inherit", "serif"');
</script>
</body>
</html>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: getComputedValue().fontFeatureSettings</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-feature-settings-prop">
<meta name="assert" content="font-feature-settings computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value('font-feature-settings', 'normal');
test_computed_value('font-feature-settings', '"dlig"');
test_computed_value('font-feature-settings', '"smcp"');
test_computed_value('font-feature-settings', '"c2sc"');
test_computed_value('font-feature-settings', '"liga" 0');
test_computed_value('font-feature-settings', '"tnum", "hist"');
test_computed_value('font-feature-settings', '"PKRN"');
test_computed_value('font-feature-settings', '"dlig", "smcp", "dlig" 0');
</script>
</body>
</html>

View file

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: parsing font-feature-settings with invalid values</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-feature-settings-prop">
<meta name="assert" content="font-feature-settings supports only the grammar 'normal | <feature-tag-value> #'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value('font-feature-settings', 'normal "dlig"');
test_invalid_value('font-feature-settings', '"c2sc", normal');
test_invalid_value('font-feature-settings', '"tnum" "hist"');
test_invalid_value('font-feature-settings', '"silly" off');
test_invalid_value('font-feature-settings', 'dlig');
</script>
</body>
</html>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: parsing font-feature-settings with valid values</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-feature-settings-prop">
<meta name="assert" content="font-feature-settings supports the full grammar 'normal | <feature-tag-value> #'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_valid_value('font-feature-settings', 'normal');
// <feature-tag-value> = <string> [ <integer> | on | off ]?
test_valid_value('font-feature-settings', '"dlig" 1', '"dlig"');
test_valid_value('font-feature-settings', '"smcp" on', '"smcp"');
test_valid_value('font-feature-settings', "'c2sc'", '"c2sc"');
test_valid_value('font-feature-settings', '"liga" off', '"liga" 0');
test_valid_value('font-feature-settings', '"tnum", \'hist\'', '"tnum", "hist"');
test_valid_value('font-feature-settings', '"PKRN"');
test_valid_value('font-feature-settings', '"dlig" 1, "smcp" on, "dlig" 0', '"dlig", "smcp", "dlig" 0');
</script>
</body>
</html>

View file

@ -0,0 +1,28 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 4: parsing font with invalid values</title>
<link rel="help" href="https://drafts.csswg.org/css-fonts-4/#font-prop">
<meta name="assert" content="font supports only the grammar '[ [ <'font-style'> || <font-variant-css2> || <'font-weight'> || <font-stretch-css3> ]? <'font-size'> [ / <'line-height'> ]? <'font-family'> ] | caption | icon | menu | message-box | small-caption | status-bar'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value('font', 'menu icon');
test_invalid_value('font', 'italic oblique xx-small serif');
test_invalid_value('font', 'small-caps small-caps medium/normal sans-serif');
test_invalid_value('font', 'bold bolder xx-large/1.2 cursive');
test_invalid_value('font', 'ultra-condensed extra-condensed larger/calc(120% + 1.2em) fantasy');
test_invalid_value('font', 'italic small-caps lighter condensed normal smaller monospace');
test_invalid_value('font', 'normal 100 semi-condensed oblique small-caps 10px/normal Menu');
test_invalid_value('font', 'normal normal normal normal normal 20%/1.2 \"FB Armada\"');
test_invalid_value('font', 'italic small-caps lighter condensed smaller');
test_invalid_value('font', 'normal 100 semi-condensed oblique small-caps Menu');
</script>
</body>
</html>

View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: getComputedValue().fontKerning</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-kerning-prop">
<meta name="assert" content="font-kerning computed value is as specified.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/computed-testcommon.js"></script>
</head>
<body>
<div id="target"></div>
<script>
test_computed_value('font-kerning', 'auto');
test_computed_value('font-kerning', 'normal');
test_computed_value('font-kerning', 'none');
</script>
</body>
</html>

View file

@ -0,0 +1,18 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS Fonts Module Level 3: parsing font-kerning with invalid values</title>
<link rel="help" href="https://www.w3.org/TR/css-fonts-3/#font-kerning-prop">
<meta name="assert" content="font-kerning supports only the grammar 'auto | normal | none'.">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/css/support/parsing-testcommon.js"></script>
</head>
<body>
<script>
test_invalid_value('font-kerning', 'normal auto');
test_invalid_value('font-kerning', 'none, auto');
</script>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show more