|
| 1 | +'use strict'; |
| 2 | +constcommon=require('../common'); |
| 3 | + |
| 4 | +common.skipIfInspectorDisabled(); |
| 5 | + |
| 6 | +(asyncfunctiontest(){ |
| 7 | +const{ strictEqual }=require('assert'); |
| 8 | +const{ Session }=require('inspector'); |
| 9 | +const{ promisify }=require('util'); |
| 10 | +constvm=require('vm'); |
| 11 | +constsession=newSession(); |
| 12 | +session.connect(); |
| 13 | +session.post=promisify(session.post); |
| 14 | +awaitsession.post('Debugger.enable'); |
| 15 | +awaitcheck('http://example.com','http://example.com'); |
| 16 | +awaitcheck(undefined,'evalmachine.<anonymous>'); |
| 17 | +awaitcheck('file:///foo.js','file:///foo.js'); |
| 18 | +awaitcheck('file:///foo.js','file:///foo.js'); |
| 19 | +awaitcheck('foo.js','foo.js'); |
| 20 | +awaitcheck('[eval]','[eval]'); |
| 21 | +awaitcheck('%.js','%.js'); |
| 22 | + |
| 23 | +if(common.isWindows){ |
| 24 | +awaitcheck('C:\\foo.js','file:///C:/foo.js'); |
| 25 | +awaitcheck('C:\\a\\b\\c\\foo.js','file:///C:/a/b/c/foo.js'); |
| 26 | +awaitcheck('a:\\%.js','file:///a:/%25.js'); |
| 27 | +}else{ |
| 28 | +awaitcheck('/foo.js','file:///foo.js'); |
| 29 | +awaitcheck('/a/b/c/d/foo.js','file:///a/b/c/d/foo.js'); |
| 30 | +awaitcheck('/%%%.js','file:///%25%25%25.js'); |
| 31 | +} |
| 32 | + |
| 33 | +asyncfunctioncheck(filename,expected){ |
| 34 | +constpromise= |
| 35 | +newPromise((resolve)=>session.once('inspectorNotification',resolve)); |
| 36 | +newvm.Script('42',{ filename }).runInThisContext(); |
| 37 | +const{params: { url }}=awaitpromise; |
| 38 | +strictEqual(url,expected); |
| 39 | +} |
| 40 | +})(); |
0 commit comments