[ 
https://issues.apache.org/jira/browse/CB-8131?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14240443#comment-14240443
 ] 

ASF GitHub Bot commented on CB-8131:
------------------------------------

Github user dblotsky commented on a diff in the pull request:

    https://github.com/apache/cordova-mobile-spec/pull/113#discussion_r21577291
  
    --- Diff: cordova-plugin-mobilespec-tests/tests/localXHR.tests.js ---
    @@ -0,0 +1,206 @@
    +    /*
    +    *
    +    * Licensed to the Apache Software Foundation (ASF) under one
    +    * or more contributor license agreements.  See the NOTICE file
    +    * distributed with this work for additional information
    +    * regarding copyright ownership.  The ASF licenses this file
    +    * to you under the Apache License, Version 2.0 (the
    +    * "License"); you may not use this file except in compliance
    +    * with the License.  You may obtain a copy of the License at
    +    *
    +    *   http://www.apache.org/licenses/LICENSE-2.0
    +    *
    +    * Unless required by applicable law or agreed to in writing,
    +    * software distributed under the License is distributed on an
    +    * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    +    * KIND, either express or implied.  See the License for the
    +    * specific language governing permissions and limitations
    +    * under the License.
    +    *
    +   */
    +
    +    exports.defineAutoTests = function () {
    +
    +        var TEST_TIMEOUT = 7500;
    +
    +        describe("XMLHttpRequest", function () {
    +
    +            var lose = function (done) {
    +                expect(true).toBe(false);
    +                done();
    +            }
    +
    +            var win = function (done, message) {
    +                expect(true).toBe(true);
    +                done();
    +            };
    +
    +            var createXHR = function (url, bAsync, win, lose) {
    +                var xhr = new XMLHttpRequest();
    +                xhr.open("GET", url, bAsync);
    +                xhr.onload = win;
    +                xhr.onerror = lose;
    +                xhr.send();
    +                return xhr;
    +            }
    +
    +
    +            it("XMLHttpRequest.spec.1 should exist", function () {
    +                expect(window.XMLHttpRequest).toBeDefined();
    +                expect(window.XMLHttpRequest.UNSENT).toBe(0);
    +                expect(window.XMLHttpRequest.OPENED).toBe(1);
    +                expect(window.XMLHttpRequest.HEADERS_RECEIVED).toBe(2);
    +                expect(window.XMLHttpRequest.LOADING).toBe(3);
    +                expect(window.XMLHttpRequest.DONE).toBe(4);
    +            });
    +
    +            it("XMLHttpRequest.spec.2 should be able to create new XHR", 
function () {
    +
    +                var xhr = new XMLHttpRequest();
    +                expect(xhr).toBeDefined();
    +
    +                // abort
    +                expect(xhr.abort).toBeDefined();
    +                expect(typeof xhr.abort == 'function').toBe(true);
    +
    +                // getResponseHeader
    +                expect(xhr.getResponseHeader).toBeDefined();
    +                expect(typeof xhr.getResponseHeader == 
'function').toBe(true);
    +
    +                // getAllResponseHeaders
    +                expect(xhr.getAllResponseHeaders).toBeDefined();
    +                expect(typeof xhr.getAllResponseHeaders == 
'function').toBe(true);
    +
    +                // overrideMimeType
    +                //  IE10 does not support overrideMimeType
    +                if (cordova.platformId != 'windows8' && cordova.platformId 
!= 'windowsphone') {
    +                    expect(xhr.overrideMimeType).toBeDefined();
    +                    expect(typeof xhr.overrideMimeType == 
'function').toBe(true);
    +                }
    +              
    +                // open
    +                expect(xhr.open).toBeDefined();
    +                expect(typeof xhr.open == 'function').toBe(true);
    +                // send
    +                expect(xhr.send).toBeDefined();
    +                expect(typeof xhr.send == 'function').toBe(true);
    +                // setRequestHeader
    +                expect(xhr.setRequestHeader).toBeDefined();
    +                expect(typeof xhr.setRequestHeader == 
'function').toBe(true);
    +            });
    +
    +            it("XMLHttpRequest.spec.2 should be able to load the current 
page", function (done) {
    +                createXHR("index.html", true, win.bind(null, done), 
lose.bind(null, done));
    +            });
    +
    +            it("XMLHttpRequest.spec.9 calls onload from successful http 
get", function (done) {
    +                createXHR("http://cordova-filetransfer.jitsu.com";, true, 
win.bind(null, done), lose.bind(null, done));
    +            });
    +
    +            it("XMLHttpRequest.spec.3 should be able to load the current 
page", function (done) {
    +                createXHR(window.location.href, true, win.bind(null, 
done), lose.bind(null, done));
    +            });
    +
    +            it("XMLHttpRequest.spec.4 should be able to load the parent 
folder page ../index.html", function (done) {
    +                createXHR("../index.html", true, win.bind(null, done), 
lose.bind(null, done));
    +            });
    +
    +            it("XMLHttpRequest.spec.5 should be able to load the current 
page ./???.html", function (done) {
    +                var fileName = 
window.location.href.split('#')[0].split('/').pop();
    +                createXHR("./" + fileName, true, win.bind(null, done), 
lose.bind(null, done));
    +            });
    +
    +            it("XMLHttpRequest.spec.6 adds hash-path and loads file okay", 
function (done) {
    +                window.location = window.location.href + "#asd/asd/asdasd";
    +                createXHR(window.location.href, true, win.bind(null, 
done), lose.bind(null, done));
    +            });
    +
    +
    +            describe("XMLHttpRequest", function () {
    +                var order = "",
    +                    winA,
    +                    winB,
    +                    lose;
    +
    +                beforeEach(function (done) {
    +                    var isAcalled = false;
    +                    var isBCalled = false;
    +
    +                    winA = 
jasmine.createSpy("spyWinA").and.callFake(function () {
    +                        order += "A";
    +                        isAcalled = true;
    +                        if (isBCalled)
    +                            done();
    +                    });
    +                    winB = 
jasmine.createSpy("spyWinB").and.callFake(function () {
    +                        order += "B";
    +                        isBCalled = true;
    +                        if (isAcalled)
    +                            done();
    +                    });
    +                    lose = 
jasmine.createSpy('xhrFail').and.callFake(function () {
    +                        expect(true).toBe(false);
    +                        done();
    +                    });
    +                    var fileName = 
window.location.href.split('#')[0].split('/').pop();
    +                    createXHR(fileName, true, winA, lose);
    +                    createXHR(fileName, false, winB, lose);
    +
    +                }, TEST_TIMEOUT);
    +
    +                it("XMLHttpRequest.spec.10 overlapping async calls are not 
muxed", function (done) {
    +                    expect(lose).not.toHaveBeenCalled();
    +                    expect(winA).toHaveBeenCalled();
    +                    expect(winB).toHaveBeenCalled();
    +                    console.log("order = " + order);
    +                    done();
    +                }, "Expecting both callbacks to be called.", TEST_TIMEOUT);
    +
    +            });
    +        });
    +
    +
    +        // only add these tests if we are testing on windows phone
    +
    +        if (/Windows Phone/.exec(navigator.userAgent)) {
    +
    +            var lose = function (done) {
    +                expect(true).toBe(false);
    +                done();
    +            }
    +
    +            var win = function (done, message) {
    +                expect(true).toBe(true);
    +                done();
    +            };
    +
    +
    +            var createXHR = function (url, bAsync, win, lose) {
    +                var xhr = new XMLHttpRequest();
    +                xhr.open("GET", url, bAsync);
    +                xhr.onload = win;
    +                xhr.onerror = lose;
    +                xhr.send();
    +                return xhr;
    +            }
    +
    +            describe("XMLHttpRequest Windows Phone", function () {
    +
    +                console.log("running special windows tests");
    +                it("XMLHttpRequest.spec.7 should be able to load the (WP8 
backwards compatability) root page www/index.html", function () {
    +                    createXHR("www/index.html", true, win.bind(null, 
done), lose.bind(null, done));
    +                });
    +
    +                it("XMLHttpRequest.spec.8 should be able to load the (WP7 
backwards compatability) root page app/www/index.html", function () {
    +                    createXHR("app/www/index.html", true, win.bind(null, 
done), lose.bind(null, done));
    +
    +                });
    +
    +                it("XMLHttpRequest.spec.11 should be able to load the 
current page using window.location with extra / [CB-6299]", function () {
    +                    var path = window.location.protocol + "/" + 
window.location.toString().substr(window.location.protocol.length);
    +                    createXHR(path, true, win.bind(null, done), 
lose.bind(null, done));
    --- End diff --
    
    Is `win` a necessary function? Do you think we could just pass `done` as 
the success callback?


> Rewrite non plugin tests for Jasmine 2.0 and join all auto tests at the one 
> page
> --------------------------------------------------------------------------------
>
>                 Key: CB-8131
>                 URL: https://issues.apache.org/jira/browse/CB-8131
>             Project: Apache Cordova
>          Issue Type: Improvement
>          Components: Medic, mobile-spec
>            Reporter: Maria Bukharina
>
> Medic doesn't run non pluin auto tests since plagin auto tests was rewrote to 
> jasmine 2.0.
>  Proposed to rewrote non plugin auto tests for jasmine 2.0 and wrap then into 
> plugin. Then we could use test-frameworkfor running all auto tests.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org
For additional commands, e-mail: issues-h...@cordova.apache.org

Reply via email to