fu: Close-up of Fu, bringing a scoop of water to her mouth (Default)
fu ([personal profile] fu) wrote in [site community profile] changelog2011-02-28 12:27 pm

[dw-free] Old JS libraries don't play nice with other libraries on the page

[commit: http://hg.dwscoalition.org/dw-free/rev/4e3f8c8ccf16]

http://bugs.dwscoalition.org/show_bug.cgi?id=3531

Add tests to make sure our libraries don't modify core javascript behavior.

Patch by [personal profile] fu.

Files modified:
  • views/dev/tests/libfunctions.html
  • views/dev/tests/libfunctions.js
--------------------------------------------------------------------------------
diff -r fc9f2c08fc02 -r 4e3f8c8ccf16 views/dev/tests/libfunctions.html
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/dev/tests/libfunctions.html	Mon Feb 28 20:27:30 2011 +0800
@@ -0,0 +1,7 @@
+<style type="text/css">.ippu { display: none; }</style>
+
+<table id="selectable_t"></table>
+<div id="searchview"></div>
+<div id="searchresults"></div>
+<div id="searchconstraints"></div>
+<button id="checkall"></button>
diff -r fc9f2c08fc02 -r 4e3f8c8ccf16 views/dev/tests/libfunctions.js
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/views/dev/tests/libfunctions.js	Mon Feb 28 20:27:30 2011 +0800
@@ -0,0 +1,201 @@
+/* INCLUDE:
+old: js/core.js
+old: js/dom.js
+old: js/json.js
+old: js/httpreq.js
+old: js/hourglass.js
+old: js/inputcomplete.js
+old: js/datasource.js
+old: js/selectable_table.js
+
+old: js/checkallbutton.js
+
+old: js/progressbar.js
+old: js/ljprogressbar.js
+
+old: js/ippu.js
+old: js/lj_ippu.js
+old: js/template.js
+old: js/userpicselect.js
+
+old: js/view.js
+old: js/directorysearch.js
+old: js/directorysearchconstraints.js
+old: js/directorysearchresults.js
+
+old: js/esnmanager.js
+
+old: js/ljwidget.js
+old: js/ljwidget_ippu.js
+old: js/widget_ippu/settingprod.js
+*/
+
+module( "old" );
+test( "misc utils", function() {
+    expect(5);
+
+    var o;
+    o = new Hourglass();
+    o.init();
+    ok( o, "Hourglass" );
+
+    o = new InputComplete();
+    o.init();
+    ok( o, "InputComplete" );
+
+    o = new InputCompleteData();
+    o.init();
+    ok( o, "InputCompleteData" );
+
+    o = new DataSource();
+    o.init();
+    ok( o, "DataSource" );
+
+    o = new SelectableTable();
+    o.init({
+        table: $("userpicselect_t")
+    });
+    ok( o, "SelectableTable" );
+
+});
+test( "LJProgressBar", function() {
+    expect(2);
+
+    var o;
+    o = new ProgressBar();
+    o.init();
+    ok( o, "ProgressBar" );
+
+    o = new LJProgressBar();
+    o.init();
+    ok( o, "LJProgressBar" );
+});
+
+test( "UserpicSelect", function() {
+    expect(4);
+
+    var o;
+    o = new IPPU();
+    o.init();
+    ok( o, "IPPU" );
+
+    o = new LJ_IPPU();
+    o.init();
+    ok( o, "LJ_IPPU" );
+
+    o = new Template();
+    o.init();
+    ok( o, "Template" );
+
+    o = new UserpicSelect();
+    o.init();
+    ok( o, "UserpicSelect" );
+});
+
+test( "Directory", function() {
+    expect(6);
+
+    var o;
+    o = new View();
+    o.init({});
+    ok( o, "View" );
+
+    o = new DirectorySearchView();
+    o.init($("searchview"), {});
+    ok( o, "DirectorySearchView" );
+
+    o = new DirectorySearch();
+    o.init() ;
+    ok( o, "DirectorySearch" );
+
+    o = new DirectorySearchResults();
+    o.init({}, {"resultsView": $("searchresults")});
+    ok( o, "DirectorySearchResults" );
+
+    o = new DirectorySearchConstraintsView();
+    o.init({view: $("searchconstraints")});
+    ok( o, "DirectorySearchConstraintsView" );
+
+    o = new DirectorySearchConstraint();
+    o.init();
+    ok( o, "DirectorySearchConstraint" );
+});
+
+test( "ESN", function() {
+    expect(1);
+
+    var o;
+
+    // possibly unused?
+    o = new ESNManager();
+    o.init();
+    ok( o, "ESNManager" );
+});
+
+test( "Widget", function() {
+    expect(2);
+
+    var o;
+    o = new LJWidget();
+    o.init();
+    ok( o, "LJWidget" );
+
+    o = new LJWidgetIPPU();
+    o.init({});
+    ok( o, "LJWidgetIPPU" );
+
+    // automatically tries to post to something on page refresh, so leaving out
+    // o = new LJWidgetIPPU_SettingProd();
+    // o.init({}, {});
+    // ok( o, "LJWidgetIPPU_SettingProd" );
+});
+
+test( "Check all", function() {
+    expect(1);
+
+    var o;
+    o = new CheckallButton();
+    o.init({ button: $("checkall") });
+    ok( o, "CheckallButton" );
+});
+
+module( "*libfunctions" );
+test( "array tests", function () {
+    expect(4);
+
+    var array = new Array();
+    array.push( "a" );
+    array.push( "b" );
+    array.push( "c" );
+
+    equals( 3, array.length, "Check array size" );
+
+    array.forEach(function(element, index, array) {
+        equals( element, array[index] );
+    });
+});
+
+test("object tests", function() {
+    // expect(1);
+
+    var o = new Object();
+    o["a"] = "apple";
+    o["b"] = "banana";
+    o["c"] = "cat eating a banana";
+
+    var count = 0;
+    for( var key in o ) {
+        count++;
+    }
+    equals( 3, count );
+
+    o = new Object();
+    count = 0;
+    for ( var key in o ) {
+        count++;
+    }
+    equals( 0, count );
+
+});
+
+
--------------------------------------------------------------------------------