Fix for bug #493 including unit tests to prove.

Run npm install and visit test/jquery.gridster-amd.html in browser.
This commit is contained in:
Glen Pike
2015-03-03 00:46:11 +00:00
parent 314037471f
commit c0a2bde09c
13 changed files with 166 additions and 27 deletions
+53
View File
@@ -0,0 +1,53 @@
//Based on https://github.com/jonnyreeves/qunit-require
/* global require */
"use strict";
require.config({
//set the baseUrl to the src dir so that gridster
//AMD modules can be found.
baseUrl: '../src/',
paths: {
'QUnit': '../node_modules/qunitjs/qunit/qunit',
'jquery': '../node_modules/jquery/jquery',
'gridster': 'jquery.gridster',
},
map: {
// '*' means all modules will get 'jquery-private'
// for their 'jquery' dependency.
'*': { 'jquery': '../test/jquery-private' },
// 'jquery-private' wants the real jQuery module
// though. If this line was not here, there would
// be an unresolvable cyclic dependency.
'../test/jquery-private': { 'jquery': 'jquery' }
},
shim: {
'QUnit': {
exports: 'QUnit',
init: function() {
QUnit.config.autoload = false;
QUnit.config.autostart = false;
}
}
}
});
/*
Load all of our require'd files
We have to load all of the gridster jquery.* modules so
that they are defined for when gridster needs them.
Lastly, load the testsuite which defines some tests.
*/
require([
'QUnit',
'utils',
'jquery.coords',
'jquery.collision',
'jquery.draggable',
'../test/testsuite'
//Require'd files are passed as args, but we don't use them.
], function(QUnit/*, utils, coords, collision, draggable, testsuite*/) {
QUnit.load();
QUnit.start();
}
);
+3
View File
@@ -0,0 +1,3 @@
define(['jquery'], function (jq) {
return jq.noConflict( true );
});
+4 -4
View File
@@ -4,11 +4,11 @@
<meta charset="utf-8">
<title>gridster.js Test Suite</title>
<!-- Load local jQuery, removing access to $ (use jQuery, not $). -->
<script src="../libs/jquery/jquery.js"></script>
<script src="../node_modules/jquery/jquery.js"></script>
<script>jQuery.noConflict()</script>
<script type="text/javascript" src="../libs/jquery/jquery.js"></script>
<script type="text/javascript" src="../node_modules/jquery/jquery.js"></script>
<script src="../dist/jquery.gridster.min.js" type="text/javascript" charset="utf-8"></script>
@@ -16,9 +16,9 @@
<!-- Load local QUnit (grunt requires v1.0.0 or newer). -->
<link rel="stylesheet" href="../libs/qunit/qunit.css" media="screen">
<link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css" media="screen">
<script src="../libs/qunit/qunit.js"></script>
<script src="../node_modules/qunitjs/qunit/qunit.js"></script>
<!-- Load local lib and tests. -->
<script src="../src/jquery.gridster.js"></script>
<script src="jquery.gridster_test.js"></script>
+54
View File
@@ -0,0 +1,54 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>gridster.js AMD Test Suite</title>
<link rel="stylesheet" type="text/css" href="../dist/jquery.gridster.css">
<link rel="stylesheet" href="../node_modules/qunitjs/qunit/qunit.css" media="screen">
<!-- Load requirejs which will load amd-main.js and start from there-->
<script data-main="amd-main.js" src="../node_modules/requirejs/require.js"></script>
</head>
<body>
<h1 id="qunit-header">gridster.js AMD Test Suite</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">
<div class="wrapper">
<ul>
<li data-row="1" data-col="1" data-sizex="2" data-sizey="2"></li>
<li data-row="1" data-col="3" data-sizex="1" data-sizey="2"></li>
<li data-row="1" data-col="4" data-sizex="1" data-sizey="1"></li>
<li data-row="3" data-col="2" data-sizex="3" data-sizey="1"></li>
<li data-row="4" data-col="1" data-sizex="1" data-sizey="1"></li>
<li data-row="3" data-col="1" data-sizex="1" data-sizey="1"></li>
<li data-row="4" data-col="2" data-sizex="1" data-sizey="1"></li>
<li data-row="5" data-col="2" data-sizex="1" data-sizey="1"></li>
<li data-row="4" data-col="4" data-sizex="1" data-sizey="1"></li>
<li data-row="1" data-col="5" data-sizex="1" data-sizey="3"></li>
<li data-row="5" data-col="1" data-sizex="1" data-sizey="2"></li>
<li data-row="4" data-col="3" data-sizex="1" data-sizey="2"></li>
<li data-row="5" data-col="4" data-sizex="1" data-sizey="1"></li>
<li data-row="6" data-col="2" data-sizex="3" data-sizey="1"></li>
<li data-row="4" data-col="5" data-sizex="1" data-sizey="2"></li>
<li data-row="6" data-col="5" data-sizex="1" data-sizey="1"></li>
<li data-row="7" data-col="3" data-sizex="1" data-sizey="1"></li>
</ul>
</div>
</div>
</body>
</html>
+28
View File
@@ -0,0 +1,28 @@
/* global require */
"use strict";
define([
'QUnit',
'jquery',
'gridster'
], function(QUnit, $, gridster) {
QUnit.module("Gridster AMD", {
setup: function () {
},
teardown: function () {
}
});
QUnit.test('window.$ should be undefined.', function() {
equal(typeof window.$, 'undefined', 'window.$ should be undefined');
equal(typeof window.jQuery, 'undefined', 'window.jQuery should be undefined');
});
QUnit.test('gridster should be initialized.', function() {
$('.wrapper ul').gridster();
equal($(".wrapper").hasClass('ready'), true, 'Gridster should initialized wrapper.');
equal($(".wrapper ul li").length, $(".gs-w").length, 'grid elements get a .gs-w class');
});
}
);