import RNTest from './react-native-testkit/' import React from 'react' import RNFetchBlob from 'react-native-fetch-blob' import { StyleSheet, Text, View, ScrollView, Platform, Dimensions, Image, } from 'react-native'; window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest window.Blob = RNFetchBlob.polyfill.Blob const fs = RNFetchBlob.fs const { Assert, Comparer, Info, prop } = RNTest const describe = RNTest.config({ group : '0.9.4', run : true, expand : true, timeout : 20000, }) const { TEST_SERVER_URL, TEST_SERVER_URL_SSL, FILENAME, DROPBOX_TOKEN, styles } = prop() const dirs = RNFetchBlob.fs.dirs let prefix = ((Platform.OS === 'android') ? 'file://' : '') // describe('issue #105', (report, done) => { // let tmp = null // RNFetchBlob // .config({ fileCache : true }) // .fetch('GET', `${TEST_SERVER_URL}/public/github.png`) // .then((res) => { // tmp = res.path() // return RNFetchBlob.fetch('POST', `${TEST_SERVER_URL}/upload-form`, { // 'Content-Type' : 'multipart/form-data', // 'Expect' : '100-continue' // }, [ // { name : 'data', data : 'issue#105 test' }, // { name : 'file', filename : 'github.png', data : RNFetchBlob.wrap(tmp) } // ]) // }) // .then((res) => { // done() // }) // }) // // describe('issue #106', (report, done) => { // // fetch('https://rnfb-test-app.firebaseapp.com/6m-json.json') // .then((res) => { // console.log('## converted') // return res.json() // }) // .then((data) => { // // console.log(data) // report() // done() // }) // // }) // // describe('issue #111 get redirect destination', (report, done) => { // RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/redirect`) // .then((res) => { // report( // , // , // ) // done() // }) // }) // // describe('chunked encoding option test', (report, done) => { // // let path = null // let base64 = null // // RNFetchBlob // // .config({ fileCache : true }) // .fetch('GET', `${TEST_SERVER_URL}/public/1600k-img-dummy.jpg`) // .then((res) => { // base64 = res.base64() // return RNFetchBlob // .fetch('POST', `${TEST_SERVER_URL}/upload`, { // 'Content-Type' : 'application/octet-stream;BASE64' // }, base64) // }) // .then((res) => { // let headers = res.info().headers // console.log(res.text()) // report() // fs.unlink(path) // done() // }) // }) describe('#118 readStream performance prepare the file', (report, done) => { let cache = null let size = 0 let tick = Date.now() let start = -1 let count = 0 RNFetchBlob.config({fileCache : true}) .fetch('GET', `${TEST_SERVER_URL}/public/22mb-dummy`) .then((res) => { report(start in 3 seconds) cache = res.path() setTimeout(() => { fs.readStream(cache, 'utf8', 102400) .then((stream) => { stream.open() start = Date.now() stream.onData((chunk) => { count++ size += chunk.length if(Date.now() - tick > 500) { tick = Date.now() report( {size} bytes read) } }) stream.onEnd(() => { report( {size} bytes read, {Date.now() - start} ms, {count} times, ,) fs.stat(cache).then((stat) => { report( {JSON.stringify(stat)}) fs.unlink(cache) done() }) }) }) }, 3000) }) }) // describe('issue #120 upload progress should work when sending body as-is', (report, done) => { // // let data = RNTest.prop('image') // let tick = 0 // // let task = RNFetchBlob.fetch('POST', 'https://content.dropboxapi.com/2/files/upload', { // Authorization : `Bearer ${DROPBOX_TOKEN}`, // 'Dropbox-API-Arg': '{\"path\": \"/rn-upload/'+FILENAME+'\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}', // 'Content-Type' : 'text/plain; charset=dropbox-cors-hack', // }, data) // // task.uploadProgress((current, total) => { // tick ++ // }) // .then((res) => { // let resp = res.json() // report( // {JSON.stringify(resp)}, // ) // done() // }) // // })