mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Tests moved into separate folders (#3794)
Fix android crash on application exit
This commit is contained in:
148
tests/app/fetch/fetch-tests.ts
Normal file
148
tests/app/fetch/fetch-tests.ts
Normal file
@@ -0,0 +1,148 @@
|
||||
/* tslint:disable:no-unused-variable */
|
||||
import * as TKUnit from "../TKUnit";
|
||||
import * as types from "tns-core-modules/utils/types";
|
||||
|
||||
export var test_fetch_defined = function () {
|
||||
TKUnit.assert(types.isDefined((fetch)), "Method fetch() should be defined!");
|
||||
};
|
||||
|
||||
export var test_fetch = function (done: (err: Error, res?: string) => void) {
|
||||
// >> fetch-response
|
||||
fetch("https://httpbin.org/get").then(function (r) {
|
||||
// Argument (r) is Response!
|
||||
// >> (hide)
|
||||
TKUnit.assert(r instanceof Response, "Result from fetch() should be valid Response object! Actual result is: " + r);
|
||||
done(null);
|
||||
// << (hide)
|
||||
}).catch(failOnError(done));
|
||||
// << fetch-response
|
||||
};
|
||||
|
||||
export var test_fetch_text = function (done: (err: Error, res?: string) => void) {
|
||||
// >> fetch-string
|
||||
fetch("https://httpbin.org/get").then(response => { return response.text(); }).then(function (r) {
|
||||
// Argument (r) is string!
|
||||
// >> (hide)
|
||||
TKUnit.assert(types.isString(r), "Result from text() should be string! Actual result is: " + r);
|
||||
done(null);
|
||||
// << (hide)
|
||||
}).catch(failOnError(done));
|
||||
// << fetch-string
|
||||
};
|
||||
|
||||
export var test_fetch_json = function (done: (err: Error, res?: string) => void) {
|
||||
// >> fetch-json
|
||||
fetch("https://httpbin.org/get").then(response => { return response.json(); }).then(function (r) {
|
||||
// Argument (r) is JSON object!
|
||||
// >> (hide)
|
||||
TKUnit.assertNotNull(r, "Result from json() should be JSON object!");
|
||||
done(null);
|
||||
// << (hide)
|
||||
}).catch(failOnError(done));
|
||||
// << fetch-json
|
||||
};
|
||||
|
||||
export var test_fetch_formData = function (done: (err: Error, res?: string) => void) {
|
||||
// >> fetch-formdata
|
||||
fetch("https://httpbin.org/get").then(response => { return response.formData(); }).then(function (r) {
|
||||
// Argument (r) is FormData object!
|
||||
// >> (hide)
|
||||
TKUnit.assert(r instanceof FormData, "Result from formData() should be FormData object! Actual result is: " + r);
|
||||
done(null);
|
||||
// << (hide)
|
||||
}).catch(failOnError(done));
|
||||
// << fetch-formdata
|
||||
};
|
||||
|
||||
export var test_fetch_fail_invalid_url = function (done) {
|
||||
var completed: boolean;
|
||||
var isReady = function () { return completed; }
|
||||
|
||||
fetch("hgfttp://httpbin.org/get").catch(function (e) {
|
||||
completed = true;
|
||||
done(null)
|
||||
}).catch(failOnError(done));
|
||||
};
|
||||
|
||||
export var test_fetch_invalid_url_fail_message = function (done) {
|
||||
fetch("hgfttp://httpbin.org/get").catch(function (e: TypeError) {
|
||||
TKUnit.assert(e.message.match(/Network request failed:.{2,}/), "Failure message should contain details on the failure. Actual message was: " + e.message);
|
||||
done(null);
|
||||
}).catch(failOnError(done));
|
||||
};
|
||||
|
||||
export var test_fetch_response_status = function (done) {
|
||||
|
||||
// >> fetch-status-response
|
||||
fetch("https://httpbin.org/get").then(function (response) {
|
||||
// Argument (response) is Response!
|
||||
var statusCode = response.status;
|
||||
// >> (hide)
|
||||
TKUnit.assert(types.isDefined(statusCode), "response.status should be defined! Actual result is: " + statusCode);
|
||||
done(null);
|
||||
// << (hide)
|
||||
}).catch(failOnError(done));
|
||||
// << fetch-status-response
|
||||
};
|
||||
|
||||
export var test_fetch_response_headers = function (done) {
|
||||
|
||||
// >> fetch-headers-response
|
||||
fetch("https://httpbin.org/get").then(function (response) {
|
||||
// Argument (response) is Response!
|
||||
// var all = response.headers.getAll();
|
||||
// >> (hide)
|
||||
TKUnit.assert(types.isDefined(response.headers), "response.headers should be defined! Actual result is: " + response.headers);
|
||||
done(null);
|
||||
// << (hide)
|
||||
}).catch(failOnError(done));
|
||||
// << fetch-headers-response
|
||||
};
|
||||
|
||||
export var test_fetch_headers_sent = function (done) {
|
||||
fetch("https://httpbin.org/get", {
|
||||
method: "GET",
|
||||
headers: { "Content-Type": "application/json" }
|
||||
}).then(function (response) {
|
||||
var result = response.headers;
|
||||
TKUnit.assert(result.get("Content-Type") === "application/json", "Headers not sent/received properly! Actual result is: " + result);
|
||||
done(null);
|
||||
}).catch(failOnError(done));
|
||||
};
|
||||
|
||||
export var test_fetch_post_form_data = function (done) {
|
||||
var data = new FormData();
|
||||
data.append("MyVariableOne", "ValueOne");
|
||||
data.append("MyVariableTwo", "ValueTwo");
|
||||
|
||||
fetch("https://httpbin.org/post", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/x-www-form-urlencoded" },
|
||||
body: data
|
||||
}).then(r => {
|
||||
return r.formData();
|
||||
}).then(function (r) {
|
||||
TKUnit.assert(r instanceof FormData, "Content not sent/received properly! Actual result is: " + r);
|
||||
done(null);
|
||||
}).catch(failOnError(done));
|
||||
};
|
||||
|
||||
export var test_fetch_post_json = function (done) {
|
||||
// >> fetch-post-json
|
||||
fetch("https://httpbin.org/post", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify({ MyVariableOne: "ValueOne", MyVariableTwo: "ValueTwo" })
|
||||
}).then(r => { return r.json(); }).then(function (r) {
|
||||
// >> (hide)
|
||||
TKUnit.assert(r.json["MyVariableOne"] === "ValueOne" && r.json["MyVariableTwo"] === "ValueTwo", "Content not sent/received properly! Actual result is: " + r.json);
|
||||
done(null);
|
||||
// << (hide)
|
||||
// console.log(result);
|
||||
}).catch(failOnError(done));
|
||||
// << fetch-post-json
|
||||
};
|
||||
|
||||
const failOnError = function (done: (err: Error, res?: string) => void) {
|
||||
return e => done(e);
|
||||
}
|
||||
27
tests/app/fetch/fetch.md
Normal file
27
tests/app/fetch/fetch.md
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
nav-title: "fetch How-To"
|
||||
title: "fetch"
|
||||
environment: nativescript
|
||||
description: "Examples for using fetch"
|
||||
previous_url: /ApiReference/fetch/HOW-TO
|
||||
---
|
||||
### Get Response from URL
|
||||
{%snippet fetch-response%}
|
||||
|
||||
### Get string from URL
|
||||
{%snippet fetch-string%}
|
||||
|
||||
### Get JSON from URL
|
||||
{%snippet fetch-json%}
|
||||
|
||||
### Get FormData from URL
|
||||
{%snippet fetch-formdata%}
|
||||
|
||||
### Get Response status
|
||||
{%snippet fetch-status-response%}
|
||||
|
||||
### Get response headers
|
||||
{%snippet fetch-headers-response%}
|
||||
|
||||
### Post JSON
|
||||
{%snippet fetch-post-json%}
|
||||
Reference in New Issue
Block a user