@@ -60,6 +60,7 @@ describe('ProjectSettingsModel', () => {
6060 const frame = sinon . createStubInstance ( SDK . ResourceTreeModel . ResourceTreeFrame ) ;
6161 resourceTreeModel . mainFrame = frame ;
6262 sinon . stub ( frame , 'securityOriginDetails' ) . get ( ( ) => ( { isLocalhost : false } ) ) ;
63+ sinon . stub ( frame , 'url' ) . get ( ( ) => urlString `http://www.example.com/` ) ;
6364
6465 const projectSettingsModel = ProjectSettingsModel . instance ( {
6566 forceNew : true ,
@@ -92,8 +93,9 @@ describe('ProjectSettingsModel', () => {
9293 sinon . stub ( frame , 'url' ) . get ( ( ) => initiatorUrl ) ;
9394 sinon . stub ( frame , 'id' ) . get ( ( ) => frameId ) ;
9495
96+ const content = '{"workspace":{"root":"/home/foo","uuid":"8f7b028c-0323-485f-bcb9-b404edc0f186"}}' ;
9597 pageResourceLoader . loadResource . withArgs ( url , sinon . match ( { target, frameId, initiatorUrl} ) )
96- . returns ( Promise . resolve ( { content : '{"workspace":{"root":"/home/foo","uuid":"foo"}}' } ) ) ;
98+ . returns ( Promise . resolve ( { content} ) ) ;
9799
98100 const projectSettingsModel = ProjectSettingsModel . instance ( {
99101 forceNew : true ,
@@ -106,7 +108,72 @@ describe('ProjectSettingsModel', () => {
106108 assert . deepEqual ( projectSettings , {
107109 workspace : {
108110 root : '/home/foo' as Platform . DevToolsPath . RawPathString ,
109- uuid : 'foo' ,
111+ uuid : '8f7b028c-0323-485f-bcb9-b404edc0f186' ,
112+ }
113+ } ) ;
114+ } ) ;
115+
116+ it ( 'doesn\'t load the devtools.json from DevTools-on-DevTools (without --custom-devtools-frontend)' , async ( ) => {
117+ const hostConfig = { devToolsWellKnown : { enabled : true } } ;
118+ const pageResourceLoader = sinon . createStubInstance ( SDK . PageResourceLoader . PageResourceLoader ) ;
119+ const targetManager = sinon . createStubInstance ( SDK . TargetManager . TargetManager ) ;
120+
121+ const target = sinon . createStubInstance ( SDK . Target . Target ) ;
122+ targetManager . primaryPageTarget . returns ( target ) ;
123+
124+ const resourceTreeModel = sinon . createStubInstance ( SDK . ResourceTreeModel . ResourceTreeModel ) ;
125+ target . model . withArgs ( SDK . ResourceTreeModel . ResourceTreeModel ) . returns ( resourceTreeModel ) ;
126+
127+ const frame = sinon . createStubInstance ( SDK . ResourceTreeModel . ResourceTreeFrame ) ;
128+ resourceTreeModel . mainFrame = frame ;
129+ sinon . stub ( frame , 'url' ) . get ( ( ) => urlString `devtools://devtools/bundled/devtools_app.html` ) ;
130+
131+ const projectSettingsModel = ProjectSettingsModel . instance ( {
132+ forceNew : true ,
133+ hostConfig,
134+ pageResourceLoader,
135+ targetManager,
136+ } ) ;
137+
138+ const projectSettings = await projectSettingsModel . projectSettingsPromise ;
139+ assert . deepEqual ( projectSettings , { } ) ;
140+ } ) ;
141+
142+ it ( 'correctly loads the devtools.json for DevTools-on-DevTools (with --custom-devtools-frontend)' , async ( ) => {
143+ const hostConfig = { devToolsWellKnown : { enabled : true } } ;
144+ const pageResourceLoader = sinon . createStubInstance ( SDK . PageResourceLoader . PageResourceLoader ) ;
145+ const targetManager = sinon . createStubInstance ( SDK . TargetManager . TargetManager ) ;
146+
147+ const target = sinon . createStubInstance ( SDK . Target . Target ) ;
148+ targetManager . primaryPageTarget . returns ( target ) ;
149+
150+ const resourceTreeModel = sinon . createStubInstance ( SDK . ResourceTreeModel . ResourceTreeModel ) ;
151+ target . model . withArgs ( SDK . ResourceTreeModel . ResourceTreeModel ) . returns ( resourceTreeModel ) ;
152+
153+ const url = urlString `devtools://devtools/bundled/.well-known/appspecific/com.chrome.devtools.json` ;
154+ const frameId = 'mainFrame' ;
155+ const initiatorUrl = urlString `devtools://devtools/bundled/devtools_app.html?debugFrontend=true` ;
156+ const frame = sinon . createStubInstance ( SDK . ResourceTreeModel . ResourceTreeFrame ) ;
157+ resourceTreeModel . mainFrame = frame ;
158+ sinon . stub ( frame , 'url' ) . get ( ( ) => initiatorUrl ) ;
159+ sinon . stub ( frame , 'id' ) . get ( ( ) => frameId ) ;
160+
161+ const content = '{"workspace":{"root":"/path/to/front_end","uuid":"5a509b03-1da9-460d-bc38-0c8166ba0c41"}}' ;
162+ pageResourceLoader . loadResource . withArgs ( url , sinon . match ( { target, frameId, initiatorUrl} ) )
163+ . returns ( Promise . resolve ( { content} ) ) ;
164+
165+ const projectSettingsModel = ProjectSettingsModel . instance ( {
166+ forceNew : true ,
167+ hostConfig,
168+ pageResourceLoader,
169+ targetManager,
170+ } ) ;
171+
172+ const projectSettings = await projectSettingsModel . projectSettingsPromise ;
173+ assert . deepEqual ( projectSettings , {
174+ workspace : {
175+ root : '/path/to/front_end' as Platform . DevToolsPath . RawPathString ,
176+ uuid : '5a509b03-1da9-460d-bc38-0c8166ba0c41' ,
110177 }
111178 } ) ;
112179 } ) ;
0 commit comments