287 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			287 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|  | <!doctype html> | ||
|  | <html lang="en"> | ||
|  | 
 | ||
|  | <head> | ||
|  |     <meta charset="utf-8"> | ||
|  |     <meta http-equiv="X-UA-Compatible" content="IE=edge"> | ||
|  |     <meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width"> | ||
|  |     <title>JSAPI Loader</title> | ||
|  |     <style> | ||
|  |         html, | ||
|  |         body, | ||
|  |         #container { | ||
|  |             height: 100%; | ||
|  |             width: 100%; | ||
|  |             margin: 0; | ||
|  |         } | ||
|  |     </style> | ||
|  | </head> | ||
|  | 
 | ||
|  | <body> | ||
|  |     <div id="mocha"></div> | ||
|  | 
 | ||
|  |     <link rel="stylesheet" href="./libs/mocha.min.css" /> | ||
|  |     <script src="./libs/chai.min.js"></script> | ||
|  |     <script src="./libs/mocha.min.js"></script> | ||
|  | 
 | ||
|  |     <script> | ||
|  |         mocha.setup('bdd'); | ||
|  |         mocha.traceIgnores = ['mocha.min.js', 'chai.min.js']; | ||
|  |         expect = chai.expect; | ||
|  |     </script> | ||
|  |     <div id="container" tabindex="0"></div> | ||
|  | 
 | ||
|  |     <script src="../dist/index.js"></script> | ||
|  |     <script> | ||
|  |         // 请把 key 写在这里 | ||
|  |         const JSAPIKey = ''; | ||
|  |         const chai = window.chai; | ||
|  |         const mocha = window.mocha; | ||
|  |         mocha.setup({ | ||
|  |             timeout: '5000', | ||
|  |             ui: 'bdd', | ||
|  |         }); | ||
|  |         const expect = chai.expect; | ||
|  |         describe('JSAPI', () => { | ||
|  |             beforeEach(function () { | ||
|  |                 AMapLoader.reset() | ||
|  |             }); | ||
|  | 
 | ||
|  |             it('Simple', (done) => { | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '2.0', | ||
|  |                     plugins: ['AMap.Scale'], | ||
|  |                     AMapUI: { | ||
|  |                         plugins: ['overlay/SimpleMarker'] | ||
|  |                     } | ||
|  |                 }).then(() => { | ||
|  |                     expect(Boolean(window.AMap)).eq(true) | ||
|  |                     expect(Boolean(window.AMapUI)).eq(true) | ||
|  |                     expect(Boolean(window.AMapUI.SimpleMarker)).eq(true) | ||
|  |                     expect(Boolean(window.Loca)).eq(false) | ||
|  |                     done(); | ||
|  |                 }); | ||
|  | 
 | ||
|  |             }); | ||
|  |             it('Request with AMapUI Loca', (done) => { | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '1.4.15', | ||
|  |                     plugins: ['AMap.Scale'], | ||
|  |                     AMapUI: { | ||
|  |                         plugins: ['overlay/SimpleMarker'] | ||
|  |                     }, | ||
|  |                     Loca: { | ||
|  |                         version: '1.3.2' | ||
|  |                     } | ||
|  |                 }).then(() => { | ||
|  |                     expect(Boolean(window.AMap)).eq(true) | ||
|  |                     expect(Boolean(window.AMapUI)).eq(true) | ||
|  |                     expect(Boolean(window.AMapUI.SimpleMarker)).eq(true) | ||
|  | 
 | ||
|  |                     expect(Boolean(window.Loca)).eq(true) | ||
|  |                     done(); | ||
|  |                 }); | ||
|  | 
 | ||
|  |             }); | ||
|  |             it('fail with multi version', (done) => { | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '2.0', | ||
|  |                 }).then(() => { | ||
|  |                     done() | ||
|  |                 }); | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '1.4.15', | ||
|  |                 }).then(() => { | ||
|  |                     done(Error('should not here')) | ||
|  |                 }) | ||
|  |                     .catch(err => { | ||
|  |                         try { | ||
|  |                             expect(err).eq('不允许多个版本 JSAPI 混用') | ||
|  | 
 | ||
|  |                         } catch (error) { | ||
|  |                             done(error) | ||
|  |                         } | ||
|  |                     }) | ||
|  | 
 | ||
|  |             }); | ||
|  |             it('fail with multi key', (done) => { | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '2.0', | ||
|  |                 }).then(() => { | ||
|  |                     done() | ||
|  |                 }); | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: 'asdfas',//首次load必填 | ||
|  |                 }).then(() => { | ||
|  |                     done(Error('should not here')) | ||
|  |                 }) | ||
|  |                     .catch(err => { | ||
|  |                         try { | ||
|  |                             expect(err).eq('多个不一致的 key') | ||
|  | 
 | ||
|  |                         } catch (error) { | ||
|  |                             done(error) | ||
|  |                         } | ||
|  |                     }) | ||
|  | 
 | ||
|  |             }); | ||
|  |         }) | ||
|  | 
 | ||
|  | 
 | ||
|  |         describe('AMapUI', () => { | ||
|  |             beforeEach(function () { | ||
|  |                 AMapLoader.reset() | ||
|  |             }); | ||
|  | 
 | ||
|  |             it('version', (done) => { | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '1.4.15', | ||
|  |                     AMapUI: { | ||
|  |                         version: '1.1', | ||
|  |                         plugins: ['misc/PathSimplifier'] | ||
|  |                     } | ||
|  |                 }).then(() => { | ||
|  |                     expect(Boolean(window.AMap)).eq(true) | ||
|  |                     expect(Boolean(window.AMapUI)).eq(true) | ||
|  |                     expect(Boolean(window.AMapUI.PathSimplifier)).eq(true) | ||
|  |                     expect(Boolean(window.AMapUI.version.startsWith('1.1'))).eq(true) | ||
|  |                     done(); | ||
|  |                 }).catch(done); | ||
|  |             }); | ||
|  | 
 | ||
|  |             it('async', (done) => { | ||
|  |                 console.log(window.AMap); | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '1.4.15', | ||
|  |                     AMapUI: { | ||
|  |                         version: '1.0', | ||
|  |                         plugins: ['overlay/SimpleMarker'] | ||
|  |                     } | ||
|  |                 }).then(() => { | ||
|  |                     AMapLoader.load({ | ||
|  |                         AMapUI: { | ||
|  |                             plugins: ['overlay/SimpleInfoWindow'] | ||
|  |                         } | ||
|  |                     }).then(() => { | ||
|  |                         expect(Boolean(window.AMap)).eq(true) | ||
|  |                         expect(Boolean(window.AMapUI.version.startsWith('1.0'))).eq(true) | ||
|  |                         expect(Boolean(window.AMapUI.SimpleMarker)).eq(true) | ||
|  |                         expect(Boolean(window.AMapUI.SimpleInfoWindow)).eq(true) | ||
|  |                         done() | ||
|  |                     }); | ||
|  |                 }).catch(done); | ||
|  |             }) | ||
|  |         }); | ||
|  | 
 | ||
|  |         describe('Loca', () => { | ||
|  |             beforeEach(function () { | ||
|  |                 AMapLoader.reset() | ||
|  |             }); | ||
|  | 
 | ||
|  |             it('version', (done) => { | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '1.4.15', | ||
|  |                     Loca: { | ||
|  |                         version: '1.3.1' | ||
|  |                     } | ||
|  |                 }).then(() => { | ||
|  |                     expect(Boolean(window.AMap)).eq(true) | ||
|  |                     expect(Boolean(window.Loca)).eq(true) | ||
|  |                     expect(window.Loca.version).eq('1.3.1') | ||
|  |                     done() | ||
|  |                 }).catch(done); | ||
|  |             }); | ||
|  |             it('fail with jsapi2.0', (done) => { | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '2.0', | ||
|  |                     Loca: { | ||
|  |                         version: '1.3.1' | ||
|  |                     } | ||
|  |                 }).then(() => { | ||
|  |                     done(Error('should not here')) | ||
|  |                 }).catch(err => { | ||
|  |                     try { | ||
|  |                         expect(err).eq("Loca 暂不适配 JSAPI 2.0,请使用 1.4.15") | ||
|  |                         done() | ||
|  |                     } catch (error) { | ||
|  |                         done(error) | ||
|  |                     } | ||
|  |                 }); | ||
|  |             }); | ||
|  | 
 | ||
|  | 
 | ||
|  |             it('async', (done) => { | ||
|  |                 AMapLoader.load({ | ||
|  |                     key: JSAPIKey,//首次load必填 | ||
|  |                     version: '1.4.15', | ||
|  |                     Loca: { | ||
|  |                         version: '1.2.1' | ||
|  |                     } | ||
|  |                 }).then(() => { | ||
|  |                     expect(Boolean(window.AMap)).eq(true) | ||
|  |                     expect(Boolean(window.Loca)).eq(true) | ||
|  |                     expect(window.Loca.version).eq('1.2.1') | ||
|  |                     AMapLoader.load({ | ||
|  |                         Loca: { | ||
|  |                             version: '1.2.1' | ||
|  |                         } | ||
|  |                     }).then(() => { | ||
|  |                         expect(Boolean(window.AMap)).eq(true) | ||
|  |                         expect(Boolean(window.Loca)).eq(true) | ||
|  |                         expect(window.Loca.version).eq('1.2.1') | ||
|  |                         done() | ||
|  |                     }).catch(done); | ||
|  | 
 | ||
|  |                 }); | ||
|  |             }) | ||
|  |         }); | ||
|  | 
 | ||
|  | 
 | ||
|  |         describe('Advance', () => { | ||
|  |             beforeEach(function () { | ||
|  |                 AMapLoader.reset() | ||
|  |             }); | ||
|  |             it('Multi', (done) => { | ||
|  |                 AMapLoader.load({ key: JSAPIKey, version: '1.4.15' }).then(() => { | ||
|  |                     expect(Boolean(window.AMap)).eq(true); | ||
|  |                     expect(window.AMap.v).eq('1.4.15'); | ||
|  | 
 | ||
|  |                     expect(Boolean(window.AMapUI)).eq(false); | ||
|  |                     expect(Boolean(window.Loca)).eq(false); | ||
|  |                     AMapLoader.load({ AMapUI: {} }).then(() => { | ||
|  |                         expect(Boolean(window.AMap)).eq(true); | ||
|  |                         expect(window.AMap.v).eq('1.4.15'); | ||
|  | 
 | ||
|  |                         expect(Boolean(window.AMapUI)).eq(true); | ||
|  |                         expect(window.AMapUI.version.startsWith('1.1')).eq(true); | ||
|  |                         expect(Boolean(window.Loca)).eq(false); | ||
|  |                         AMapLoader.load({ Loca: {} }).then(() => { | ||
|  |                             expect(Boolean(window.AMap)).eq(true); | ||
|  |                             expect(window.AMap.v).eq('1.4.15'); | ||
|  |                             expect(Boolean(window.AMapUI)).eq(true); | ||
|  |                             expect(window.AMapUI.version.startsWith('1.1')).eq(true); | ||
|  |                             expect(Boolean(window.Loca)).eq(true); | ||
|  |                             expect(window.Loca.version).eq('1.3.2'); | ||
|  |                             done() | ||
|  |                         }) | ||
|  |                     }) | ||
|  |                 }).catch(done) | ||
|  |             }) | ||
|  |         }) | ||
|  |         mocha.run() | ||
|  |     </script> | ||
|  | 
 | ||
|  | 
 | ||
|  |     </script> | ||
|  | </body> | ||
|  | 
 | ||
|  | </html> |