Added test for #968
[jquery.git] / src / jquery / coreTest.js
index 4370e9d..77fd17e 100644 (file)
@@ -159,7 +159,7 @@ test("index(Object)", function() {
 });\r
 \r
 test("attr(String)", function() {\r
-       expect(15);\r
+       expect(13);\r
        ok( $('#text1').attr('value') == "Test", 'Check for value attribute' );\r
        ok( $('#text1').attr('type') == "text", 'Check for type attribute' );\r
        ok( $('#radio1').attr('type') == "radio", 'Check for type attribute' );\r
@@ -175,15 +175,20 @@ test("attr(String)", function() {
        \r
        $('<a id="tAnchor5"></a>').attr('href', '#5').appendTo('#main'); // using innerHTML in IE causes href attribute to be serialized to the full path\r
        ok( $('#tAnchor5').attr('href') == "#5", 'Check for non-absolute href (an anchor)' );\r
-       \r
-       stop();\r
-       $.get("data/dashboard.xml", function(xml) {\r
-               ok( $("locations", xml).attr("class") == "foo", "Check class attribute in XML document" );\r
-               ok( $("location", xml).attr("for") == "bar", "Check for attribute in XML document" );\r
-               start();\r
-       });\r
 });\r
 \r
+if ( location.protocol != "file:" ) {\r
+       test("attr(String) in XML Files", function() {\r
+               expect(2);\r
+               stop();\r
+               $.get("data/dashboard.xml", function(xml) {\r
+                       ok( $("locations", xml).attr("class") == "foo", "Check class attribute in XML document" );\r
+                       ok( $("location", xml).attr("for") == "bar", "Check for attribute in XML document" );\r
+                       start();\r
+               });\r
+       });\r
+}\r
+\r
 test("attr(String, Function)", function() {\r
        expect(2);\r
        ok( $('#text1').attr('value', function() { return this.id })[0].value == "text1", "Set value from id" );\r
@@ -261,9 +266,9 @@ test("css(String|Hash)", function() {
        \r
        $.each("0,0.25,0.5,0.75,1".split(','), function(i, n) {\r
                $('#foo').css({opacity: n});\r
-               ok( $('#foo').css('opacity') == n, "Assert opacity is " + n + " as a String" );\r
+               ok( $('#foo').css('opacity') == parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a String" );\r
                $('#foo').css({opacity: parseFloat(n)});\r
-               ok( $('#foo').css('opacity') == n, "Assert opacity is " + n + " as a Number" );\r
+               ok( $('#foo').css('opacity') == parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a Number" );\r
        });     \r
        $('#foo').css({opacity: ''});\r
        ok( $('#foo').css('opacity') == '1', "Assert opacity is 1 when set to an empty String" );\r
@@ -288,9 +293,9 @@ test("css(String, Object)", function() {
        \r
        $.each("0,0.25,0.5,0.75,1".split(','), function(i, n) {\r
                $('#foo').css('opacity', n);\r
-               ok( $('#foo').css('opacity') == n, "Assert opacity is " + n + " as a String" );\r
+               ok( $('#foo').css('opacity') == parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a String" );\r
                $('#foo').css('opacity', parseFloat(n));\r
-               ok( $('#foo').css('opacity') == n, "Assert opacity is " + n + " as a Number" );\r
+               ok( $('#foo').css('opacity') == parseFloat(n), "Assert opacity is " + parseFloat(n) + " as a Number" );\r
        });\r
        $('#foo').css('opacity', '');\r
        ok( $('#foo').css('opacity') == '1', "Assert opacity is 1 when set to an empty String" );\r
@@ -316,7 +321,7 @@ test("wrap(String|Element)", function() {
 });\r
 \r
 test("append(String|Element|Array&lt;Element&gt;|jQuery)", function() {\r
-       expect(11);\r
+       expect(12);\r
        var defaultText = 'Try them out:'\r
        var result = $('#first').append('<b>buga</b>');\r
        ok( result.text() == defaultText + 'buga', 'Check if text appending works' );\r
@@ -353,6 +358,16 @@ test("append(String|Element|Array&lt;Element&gt;|jQuery)", function() {
        reset();\r
        $("#sap").append(document.getElementById('form'));\r
        ok( $("#sap>form").size() == 1, "Check for appending a form" );  // Bug #910\r
+\r
+       reset();\r
+       var pass = true;\r
+       try {\r
+               $( $("iframe")[0].contentWindow.document.body ).append("<div>test</div>");\r
+       } catch(e) {\r
+               pass = false;\r
+       }\r
+\r
+       ok( pass, "Test for appending a DOM node to the contents of an IFrame" );\r
        \r
 });\r
 \r
@@ -561,10 +576,10 @@ test("is(String)", function() {
        ok( !$('#foo').is(undefined), 'Expected false for an invalid expression - undefined' );\r
        \r
        // test is() with comma-seperated expressions\r
-       ok( $('#en').is('[@lang="en"],[@lang="de"]'), 'Check for lang attribute: Expecte en or de' );\r
-       ok( $('#en').is('[@lang="de"],[@lang="en"]'), 'Check for lang attribute: Expecte en or de' );\r
-       ok( $('#en').is('[@lang="en"] , [@lang="de"]'), 'Check for lang attribute: Expecte en or de' );\r
-       ok( $('#en').is('[@lang="de"] , [@lang="en"]'), 'Check for lang attribute: Expecte en or de' );\r
+       ok( $('#en').is('[@lang="en"],[@lang="de"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' );\r
+       ok( $('#en').is('[@lang="de"],[@lang="en"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' );\r
+       ok( $('#en').is('[@lang="en"] , [@lang="de"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' );\r
+       ok( $('#en').is('[@lang="de"] , [@lang="en"]'), 'Comma-seperated; Check for lang attribute: Expect en or de' );\r
 });\r
 \r
 test("$.extend(Object, Object)", function() {\r
@@ -806,3 +821,17 @@ test("click() context", function() {
            return false;\r
        }).click();\r
 });\r
+\r
+test("$().html().evalScripts() Eval's Scripts Twice in Firefox, see #975", function() {\r
+       expect(1);\r
+       $("#main").html('<script type="text/javascript">ok( true, "execute script" );</script>').evalScripts();\r
+});\r
+\r
+test("$('<tag>') needs optional document parameter to ease cross-frame DOM wrangling, see #968", function() {\r
+       var f = frames["iframe"].document;\r
+    f.open();\r
+    f.write("<html><body></body></html>");\r
+    f.close();\r
+    $("<div>Testing</div>").appendTo(f.body);\r
+    ok( true, "passed" );\r
+});
\ No newline at end of file