import RNTest from './react-native-testkit/'
import React from 'react'
import RNFetchBlob from 'react-native-fetch-blob'
import {
AppRegistry,
StyleSheet,
Text,
View,
Platform,
ScrollView,
Dimensions,
Image,
} from 'react-native';
const FILENAME = `${Platform.OS}-0.5.0-${Date.now()}.png`
// paste your test config here
const TEST_SERVER_URL = 'http://192.168.17.193:8123'
const DROPBOX_TOKEN = 'fsXcpmKPrHgAAAAAAAAAoXZhcXYWdgLpQMan6Tb_bzJ237DXhgQSev12hA-gUXt4'
const ctx = new RNTest.TestContext()
const Assert = RNTest.Assert
const Info = RNTest.Info
let image = null
ctx.describe('GET image from server', async function(report) {
let resp = await RNFetchBlob
.fetch('GET', `${TEST_SERVER_URL}/public/github.png`, {
Authorization : 'Bearer abde123eqweje'
})
image = resp.base64()
report(
)
})
ctx.describe('The check if it follows 301/302 redirection', async function(report) {
let resp = await RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/redirect`)
report(
,
)
})
ctx.describe('Upload octet-stream image to Dropbox', async function(report) {
let resp = await 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',
}, image)
resp = resp.json()
report(
)
})
ctx.describe('Upload multipart/form-data', async function(report, data) {
let resp = await RNFetchBlob.fetch('POST', `${TEST_SERVER_URL}/upload-form`, {
Authorization : "Bearer fsXcpmKPrHgAAAAAAAAAEGxFXwhejXM_E8fznZoXPhHbhbNhA-Lytbe6etp1Jznz",
'Content-Type' : 'multipart/form-data',
}, [
{ name : 'test-img', filename : 'test-img.png', data: image},
{ name : 'test-text', filename : 'test-text.txt', data: RNFetchBlob.base64.encode('hello.txt')},
{ name : 'field1', data : 'hello !!'},
{ name : 'field2', data : 'hello2 !!'}
])
resp = resp.json()
report(
,
,
)
})
ctx.describe('Compare uploaded multipart image', async function(report) {
let resp = await RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/public/test-img.png`)
let resp2 = await RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/public/test-text.txt`)
report(
,
)
})
// added after 0.4.2
ctx.describe('Progress report test', (report) => new Promise((resolve) => {
let received = 0
let p1 = RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/public/1mb-dummy`, {
Authorization : 'Bearer abde123eqweje'
})
.progress((written, total) => {
report()
if(written === total)
report()
})
.then((resp) => {
report()
resolve()
})
}))
// FIXME : not yet supported
ctx.describe('Large file download test', (report) => new Promise((resolve) => {
let received = 0
let p1 = RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/public/22mb-dummy`, {
Authorization : 'Bearer abde123eqweje'
})
.then((resp) => {
report()
resolve()
})
}))
// added after 0.5.0
export default ctx