123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186 |
- <!DOCTYPE html>
- <html>
- <head>
- <title>Virtual World Framework</title>
- <script type="text/javascript" src="qunit.js"></script>
- <script type="text/javascript" src="../lib/async.js"></script>
- <script type="text/javascript" src="../lib/alea.js"></script>
- <script type="text/javascript" src="../lib/mash.js"></script>
- <script type="text/javascript" src="../lib/vwf.js"></script>
- <script type="text/javascript" src="../lib/vwf/model/glge/glge-compiled.js"></script>
- <script type="text/javascript" src="../lib/require.js"></script>
- <script type="text/javascript">
- require( {
- baseUrl: "../lib",
- paths: {
- jquery: "jquery-1.10.2.min",
- },
- }, [
- "domReady",
- "utility.js",
- // This is the common model implementation and an example model that connects the
- // simulation to a WebGL scene manager.
- "jquery",
- "vwf/configuration",
- "vwf/kernel/model", // explicitly loaded until vwf can load its dependencies
- "vwf/model/glge",
- "vwf/model/object",
- "vwf/model/test",
- "vwf/model/stage/log", // explicitly loaded until vwf can load its dependencies
- "vwf/kernel/view", // explicitly loaded until vwf can load its dependencies
- "vwf/view/test",
- "vwf/view/glge",
- "vwf/kernel/utility",
- "vwf/utility",
- "logger",
- ], function( ready, testUtility ) {
- // Test the kernel-driver interface.
- ready( function() {
- vwf.initialize(
- // Models
- [
- "vwf/model/glge",
- "vwf/model/object",
- "vwf/model/test",
- { "vwf/model/test": undefined },
- { "vwf/model/test": null },
- { "vwf/model/test": "single" },
- { "vwf/model/test": [ "first", "second" ] },
- { "vwf/model/test": [ [ "array" ] ] },
- ],
- // Views
- [
- "vwf/view/glge",
- "vwf/view/test", // dummy to make the rest have the same indexes as the models
- "vwf/view/test",
- { "vwf/view/test": undefined },
- { "vwf/view/test": null },
- { "vwf/view/test": "single" },
- { "vwf/view/test": [ "first", "second" ] },
- { "vwf/view/test": [ [ "array" ] ] },
- ]
- );
- test( "Models", function() {
- equal( vwf.models.actual[0].module.id, "vwf/model/glge", "GLGE Model by number" );
- equal( vwf.models.actual["vwf/model/glge"].module.id, "vwf/model/glge", "GLGE Model by name" );
- equal( vwf.models.actual[0].module.id, vwf.models.actual["vwf/model/glge"].module.id, "GLGE Model by number and name" );
- equal( vwf.models.actual[1].module.id, "vwf/model/object", "Object Model by number" );
- equal( vwf.models.actual["vwf/model/object"].module.id, "vwf/model/object", "Object Model by name" );
- equal( vwf.models.actual[1].module.id, vwf.models.actual["vwf/model/object"].module.id, "Object Model by number and name" );
- } );
- test ( "Model parameters", function() {
- deepEqual( vwf.models.actual[2].arguments, [], "No arguments" );
- deepEqual( vwf.models.actual[3].arguments, [], "No arguments, explict undefined " );
- deepEqual( vwf.models.actual[4].arguments, [], "No arguments, explict null" );
- deepEqual( vwf.models.actual[5].arguments, [ "single" ], "Single argument as a value" );
- deepEqual( vwf.models.actual[6].arguments, [ "first", "second" ], "Multiple arguments as an array" );
- deepEqual( vwf.models.actual[7].arguments, [ [ "array" ] ], "Array as an argument" );
- } );
- test( "Views", function() {
- equal( vwf.views.actual[0].module.id, "vwf/view/glge", "GLGE View" );
- } );
- test ( "View parameters", function() {
- deepEqual( vwf.views[2].arguments, [], "No arguments" );
- deepEqual( vwf.views[3].arguments, [], "No arguments, explict undefined " );
- deepEqual( vwf.views[4].arguments, [], "No arguments, explict null" );
- deepEqual( vwf.views[5].arguments, [ "single" ], "Single argument as a value" );
- deepEqual( vwf.views[6].arguments, [ "first", "second" ], "Multiple arguments as an array" );
- deepEqual( vwf.views[7].arguments, [ [ "array" ] ], "Array as an argument" );
- } );
- test( "Shared state", function() {
- var model_glge = vwf.models.actual["vwf/model/glge"];
- var view_glge = vwf.views.actual["vwf/view/glge"];
- var state_glge = model_glge.state; // === view_glge.state, hopefully.
- // The GLGE model and view share state.
- strictEqual( model_glge.state, view_glge.state, "GLGE state shared between " +
- model_glge.module.id + " and " + view_glge.module.id );
- // But they don't share it with any other model stage.
- vwf.models.forEach( function( model ) {
- while ( model ) {
- model === model_glge || notStrictEqual( model.state, state_glge, "GLGE state not shared with " + model.module.id );
- model = model.model;
- }
- } );
- // Or with any other view stage.
- vwf.views.forEach( function( view ) {
- while ( view ) {
- view === view_glge || notStrictEqual( view.state, state_glge, "GLGE state not shared with " + view.module.id );
- view = view.view;
- }
- } );
- } );
-
- } );
- } );
- </script>
- <link rel="stylesheet" type="text/css" href="qunit.css" />
- </head>
- <body>
- <h1 id="qunit-header">Virtual World Framework</h1>
- <h2 id="qunit-banner"></h2>
- <div id="qunit-testrunner-toolbar"></div>
- <h2 id="qunit-userAgent"></h2>
- <ol id="qunit-tests"></ol>
- <div id="qunit-fixture">test markup, will be hidden</div>
- </body>
- </html>
|