| OLD | NEW | 
|---|
| 1 'use strict'; | 1 'use strict'; | 
| 2 | 2 | 
| 3 // Sometimes we need to test that using either the name, alias, or UUID | 3 // Sometimes we need to test that using either the name, alias, or UUID | 
| 4 // produces the same result. The following objects help us do that. | 4 // produces the same result. The following objects help us do that. | 
| 5 var generic_access = { | 5 var generic_access = { | 
| 6   alias: 0x1800, | 6   alias: 0x1800, | 
| 7   name: 'generic_access', | 7   name: 'generic_access', | 
| 8   uuid: '00001800-0000-1000-8000-00805f9b34fb' | 8   uuid: '00001800-0000-1000-8000-00805f9b34fb' | 
| 9 }; | 9 }; | 
| 10 var device_name = { | 10 var device_name = { | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 50     eventSender.keyDown(' ', []); | 50     eventSender.keyDown(' ', []); | 
| 51   }); | 51   }); | 
| 52 } | 52 } | 
| 53 | 53 | 
| 54 // Calls requestDevice() in a context that's 'allowed to show a popup'. | 54 // Calls requestDevice() in a context that's 'allowed to show a popup'. | 
| 55 function requestDeviceWithKeyDown() { | 55 function requestDeviceWithKeyDown() { | 
| 56   let args = arguments; | 56   let args = arguments; | 
| 57   return callWithKeyDown(() => navigator.bluetooth.requestDevice.apply(navigator
     .bluetooth, args)); | 57   return callWithKeyDown(() => navigator.bluetooth.requestDevice.apply(navigator
     .bluetooth, args)); | 
| 58 } | 58 } | 
| 59 | 59 | 
|  | 60 // Calls testRunner.getBluetoothManualChooserEvents() until it's returned | 
|  | 61 // |expected_count| events. Or just once if |expected_count| is undefined. | 
|  | 62 function getBluetoothManualChooserEvents(expected_count) { | 
|  | 63   if (expected_count === undefined) { | 
|  | 64     expected_count = 0; | 
|  | 65   } | 
|  | 66   return new Promise((resolve, reject) => { | 
|  | 67     let events = []; | 
|  | 68     let accumulate_events = new_events => { | 
|  | 69       events.push(...new_events); | 
|  | 70       if (events.length >= expected_count) { | 
|  | 71         resolve(events); | 
|  | 72       } else { | 
|  | 73         testRunner.getBluetoothManualChooserEvents(accumulate_events); | 
|  | 74       } | 
|  | 75     }; | 
|  | 76     testRunner.getBluetoothManualChooserEvents(accumulate_events); | 
|  | 77   }); | 
|  | 78 } | 
|  | 79 | 
| 60 // errorUUID(alias) returns a UUID with the top 32 bits of | 80 // errorUUID(alias) returns a UUID with the top 32 bits of | 
| 61 // '00000000-97e5-4cd7-b9f1-f5a427670c59' replaced with the bits of |alias|. | 81 // '00000000-97e5-4cd7-b9f1-f5a427670c59' replaced with the bits of |alias|. | 
| 62 // For example, errorUUID(0xDEADBEEF) returns | 82 // For example, errorUUID(0xDEADBEEF) returns | 
| 63 // 'deadbeef-97e5-4cd7-b9f1-f5a427670c59'. The bottom 96 bits of error UUIDs | 83 // 'deadbeef-97e5-4cd7-b9f1-f5a427670c59'. The bottom 96 bits of error UUIDs | 
| 64 // were generated as a type 4 (random) UUID. | 84 // were generated as a type 4 (random) UUID. | 
| 65 function errorUUID(uuidAlias) { | 85 function errorUUID(uuidAlias) { | 
| 66   // Make the number positive. | 86   // Make the number positive. | 
| 67   uuidAlias >>>= 0; | 87   uuidAlias >>>= 0; | 
| 68   // Append the alias as a hex number. | 88   // Append the alias as a hex number. | 
| 69   var strAlias = '0000000' + uuidAlias.toString(16); | 89   var strAlias = '0000000' + uuidAlias.toString(16); | 
| 70   // Get last 8 digits of strAlias. | 90   // Get last 8 digits of strAlias. | 
| 71   strAlias = strAlias.substr(-8); | 91   strAlias = strAlias.substr(-8); | 
| 72   // Append Base Error UUID | 92   // Append Base Error UUID | 
| 73   return strAlias + '-97e5-4cd7-b9f1-f5a427670c59'; | 93   return strAlias + '-97e5-4cd7-b9f1-f5a427670c59'; | 
| 74 } | 94 } | 
| 75 | 95 | 
| 76 // Function to test that a promise rejects with the expected error type and | 96 // Function to test that a promise rejects with the expected error type and | 
| 77 // message. | 97 // message. | 
| 78 function assert_promise_rejects_with_message(promise, expected, description) { | 98 function assert_promise_rejects_with_message(promise, expected, description) { | 
| 79   return promise.then(() => { | 99   return promise.then(() => { | 
| 80     assert_unreached('Promise should have rejected: ' + description); | 100     assert_unreached('Promise should have rejected: ' + description); | 
| 81   }, error => { | 101   }, error => { | 
| 82     assert_equals(error.name, expected.name, 'Unexpected Error Name:'); | 102     assert_equals(error.name, expected.name, 'Unexpected Error Name:'); | 
| 83     if (expected.message) { | 103     if (expected.message) { | 
| 84       assert_equals(error.message, expected.message, 'Unexpected Error Message:'
     ); | 104       assert_equals(error.message, expected.message, 'Unexpected Error Message:'
     ); | 
| 85     } | 105     } | 
| 86   }); | 106   }); | 
| 87 } | 107 } | 
|  | 108 | 
|  | 109 // Parses add-device(name)=id lines in | 
|  | 110 // testRunner.getBluetoothManualChooserEvents() output, and exposes the name->id | 
|  | 111 // mapping. | 
|  | 112 class AddDeviceEventSet { | 
|  | 113   constructor() { | 
|  | 114     this._idsByName = new Map(); | 
|  | 115     this._addDeviceRegex = /^add-device\(([^)]+)\)=(.+)$/; | 
|  | 116   } | 
|  | 117   assert_add_device_event(event, description) { | 
|  | 118     let match = this._addDeviceRegex.exec(event); | 
|  | 119     assert_true(!!match, event + "isn't an add-device event: " + description); | 
|  | 120     this._idsByName.set(match[1], match[2]); | 
|  | 121   } | 
|  | 122   has(name) { | 
|  | 123     return this._idsByName.has(name); | 
|  | 124   } | 
|  | 125   get(name) { | 
|  | 126     return this._idsByName.get(name); | 
|  | 127   } | 
|  | 128 } | 
| OLD | NEW | 
|---|