Index: third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-name.html |
diff --git a/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-name.html b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-name.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e1676491741ac876fd926dc770c56915d6736449 |
--- /dev/null |
+++ b/third_party/WebKit/LayoutTests/bluetooth/requestDevice/canonicalizeFilter/unicode-max-length-for-device-name-name.html |
@@ -0,0 +1,21 @@ |
+<!DOCTYPE html> |
+<script src="../../../resources/testharness.js"></script> |
+<script src="../../../resources/testharnessreport.js"></script> |
+<script src="../../../resources/bluetooth/bluetooth-helpers.js"></script> |
+<script> |
+promise_test(() => { |
+ // \u2764's UTF-8 respresentation is 3 bytes long. |
+ // 10 chars * 3 bytes/char = 30 bytes |
+ let unicode_name = generate_string(10, '\u2764'); |
+ return setBluetoothFakeAdapter('UnicodeDeviceAdapter') |
+ .then(() => assert_promise_rejects_with_message( |
+ requestDeviceWithKeyDown({filters: [{name: unicode_name}]}), |
+ new DOMException( |
+ 'Failed to execute \'requestDevice\' on \'Bluetooth\': ' + |
+ 'A \'name\' or \'namePrefix\' longer than 29 bytes ' + |
+ 'results in no devices being found, because a device can\'t ' + |
+ 'advertise a name longer than 29 bytes.', |
+ 'NotFoundError'))); |
+}, 'Unicode string with utf8 representation between (29, 248] bytes in ' + |
+ '\'name\' must throw NotFoundError.'); |
+</script> |