import RNTest from './react-native-testkit/' import React from 'react' import RNFetchBlob from 'react-native-fetch-blob' 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.2', run : true, expand : false, timeout : 30000, }) const { TEST_SERVER_URL, TEST_SERVER_URL_SSL, DROPBOX_TOKEN, styles } = prop() const dirs = RNFetchBlob.fs.dirs let prefix = ((Platform.OS === 'android') ? 'file://' : '') let photo = null describe('upload asset from camera roll', (report, done) => { let imgName = `image-from-camera-roll-${Platform.OS}.jpg` let tick = Date.now() CameraRoll.getPhotos({first : 10}) .then((resp) => { let url = resp.edges[0].node.image.uri photo = url return RNFetchBlob.fetch('POST', 'https://content.dropboxapi.com/2/files/upload', { Authorization : `Bearer ${DROPBOX_TOKEN}`, 'Dropbox-API-Arg': `{\"path\": \"/rn-upload/${imgName}\",\"mode\": \"add\",\"autorename\": false,\"mute\": false}`, 'Content-Type' : 'application/octet-stream', }, RNFetchBlob.wrap(url)) .progress((now, total) => { if(Date.now() - tick < 1000) return report( {`upload ${now} / ${total} ${Math.floor(now/total*100)}% `} ) }) }) .then((resp) => { resp = resp.json() report( ) done() }) }) // // describe('Upload multipart data with file from CameraRoll', (report, done) => { // let filename = 'test-from-storage-img-'+Date.now()+'.png' // RNFetchBlob.fetch('POST', `${TEST_SERVER_URL}/upload-form`, { // 'Content-Type' : 'multipart/form-data', // }, [ // { name : 'test-img', filename : filename, data: RNFetchBlob.wrap(photo)}, // { name : 'test-text', filename : 'test-text.txt', data: RNFetchBlob.base64.encode('hello.txt')}, // { name : 'field1', data : 'hello !!'}, // { name : 'field2', data : 'hello2 !!'} // ]) // .then((resp) => { // resp = resp.json() // report( // , // , // ) // return RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/public/${filename}`) // }) // .then((resp) => { // report( // // ) // done() // }) // }) // // // describe('access assets from camera roll', (report, done) => { // let photo = null // CameraRoll.getPhotos({first : 10}) // .then((resp) => { // photo = resp.edges[0].node.image.uri // report( // {photo} // ) // return fs.readFile(photo, 'base64') // }) // .then((data) => { // report( // // ) // done() // }) // }) // // describe('read asset in app bundle',(report, done) => { // let target = fs.asset('test-asset2.png') // fs.readFile(target, 'base64') // .then((data) => { // report( // // ) // return fs.readFile(fs.asset('test-asset1.json'), 'utf8') // }) // .then((resp) => { // report( // ) // done() // }) // }) // // describe('stat assets in app', (report, done) => { // fs.stat(fs.asset('test-asset2.png')) // .then((data) => { // report( // {JSON.stringify(data)} // ) // done() // }) // }) // // describe('copy asset', (report, done) => { // let dest = `${dirs.DocumentDir}/test-asset-1-${Date.now()}.json` // fs.cp(fs.asset('test-asset1.json'), dest) // .then(() => fs.readFile(dest, 'utf8')) // .then((data) => { // report() // return fs.stat(fs.asset('test-asset1.json')) // }) // .then((stat) => { // report(, // // {JSON.stringify(stat)} // ) // done() // }) // }) // // // describe('upload file from assets',(report, done) => { // let assetName = fs.asset('test-asset1.json') // RNFetchBlob.fetch('POST', 'https://content.dropboxapi.com/2/files/upload', { // Authorization : `Bearer ${DROPBOX_TOKEN}`, // 'Dropbox-API-Arg': `{\"path\": \"/rn-upload/file-from-asset-${Platform.OS}.json\",\"mode\": \"add\",\"autorename\": false,\"mute\": false}`, // 'Content-Type' : 'application/octet-stream', // }, RNFetchBlob.wrap(assetName)) // .then((resp) => { // resp = resp.json() // report( // ) // done() // }) // }) describe('Check custom MIME type correctness',(report, done) => { RNFetchBlob .config({fileCache : true}) .fetch('GET', `${TEST_SERVER_URL}/public/beethoven.mp3`) .then((resp) => { return RNFetchBlob.fetch('POST', `${TEST_SERVER_URL}/mime`, null, [ { name : 'image', filename : 'image', type : 'image/jpeg', data : RNFetchBlob.base64.encode('123456') }, { name : 'mp3', filename : 'mp3', type : 'application/mp3', data : RNFetchBlob.base64.encode('123456') }, { name : 'mp3', filename : 'mp3', data : RNFetchBlob.base64.encode('123456') }, { name : 'asset', filename : 'asset.json', type: 'application/json', data : RNFetchBlob.wrap(fs.asset('test-asset1.json')) }, { name : 'camera-roll', filename : 'cameraRoll.png', type: 'image/png', data : RNFetchBlob.wrap(photo) }, { name : 'storage', filename : 'storage.mp3', type: 'application/mp3', data : RNFetchBlob.wrap(resp.path()) }, ]) }) .then((resp) => { resp = resp.json() report( , , , , , , ) done() }) })