import RNTest from './react-native-testkit/' import React from 'react' import RNFetchBlob from 'react-native-fetch-blob' import Timer from 'react-timer-mixin' import { StyleSheet, Text, View, ScrollView, CameraRoll, Platform, Dimensions, Image, } from 'react-native'; const fs = RNFetchBlob.fs const { Assert, Comparer, Info, prop } = RNTest const describe = RNTest.config({ group : '0.6.3', run : true, expand : true, timeout : 300000000, }) const { TEST_SERVER_URL, TEST_SERVER_URL_SSL, DROPBOX_TOKEN, styles } = prop() const dirs = RNFetchBlob.fs.dirs let prefix = ((Platform.OS === 'android') ? 'file://' : '') false && describe('massive HTTP request', (report, done) => { return let promises = [] let progress = [] let begin = Date.now() for(let i=0; i<1500;i++) { let p = RNFetchBlob .config({fileCache : true}) .fetch('GET', `${TEST_SERVER_URL}/public/github2.jpg`) // .progress(function(current, total){ // progress[this] = current/total // }.bind(i)) promises.push(p) } // let it = Timer.setInterval(() => { // function pgs() { // let res = [] // for(var i in progress) { // res.push({`download #${i} ${Math.floor(progress[i]*100)}%`}) // } // return res // } // report( // {pgs()} // ) // }, 1000) Promise.all(promises).then((resps) => { for(let i in resps) { fs.unlink(resps[i].path()) } report() // Timer.clearInterval(it) done() }) }) RNTest.config({ group : '0.7.0', run : true, expand : false, timeout : 600000, })('Upload and download large file', (report, done) => { let filename = '22mb-dummy-' + Date.now() let begin = -1 let begin2 = -1 let deb = Date.now() RNFetchBlob.config({ fileCache : true }) .fetch('GET', `${TEST_SERVER_URL}/public/22mb-dummy`) .progress((now, total) => { if(begin === -1) begin = Date.now() if(Date.now() - deb < 1000) return deb = Date.now() report( {`download ${now} / ${total} bytes (${Math.floor(now / (Date.now() - begin))} kb/s)`} ) }) .then((res) => { try { deb = Date.now() // let promise = RNFetchBlob.fetch('POST', `${TEST_SERVER_URL}/raw`, { let promise = 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' : 'application/octet-stream', }, RNFetchBlob.wrap(res.path())) promise.uploadProgress((now, total) => { if(Date.now() - deb < 1000) return deb = Date.now() if(begin2 === -1) begin2 = Date.now() let speed = Math.floor(now / (Date.now() - begin2)) report( {`upload ${now} / ${total} bytes (${speed} kb/s)`} {` ${Math.floor((total-now)/speed/1000)} seconds left`} ) }) return promise } catch(err) { console.log(err) } }) .then((res) => { report() done() }) })