Skip to content
This repository was archived by the owner on Mar 16, 2019. It is now read-only.

Commit 3591b9f

Browse files
committed
#8 Add tests for ASCII encoded data
1 parent 516d11b commit 3591b9f

File tree

3 files changed

+71
-18
lines changed

3 files changed

+71
-18
lines changed

test/test-android.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ const fs = RNFetchBlob.fs
1616
const { Assert, Comparer, Info, prop } = RNTest
1717
const describe = RNTest.config({
1818
group : 'Android only functions',
19-
run : true,
19+
run : Platform.OS === 'android',
2020
expand : false,
2121
})
2222
const { TEST_SERVER_URL, FILENAME, DROPBOX_TOKEN, styles } = prop()

test/test-fs.js

Lines changed: 68 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,8 @@ describe('create file API test', (report, done) => {
100100
key="base64 content test"
101101
expect={raw}
102102
actual={d}/>)
103-
testASCII()
103+
// testASCII()
104+
done()
104105
})
105106
})
106107
.catch((err) => {
@@ -225,7 +226,6 @@ describe('write stream API test', (report, done) => {
225226
d2 += chunk
226227
})
227228
rs.onEnd(() => {
228-
console.log(RNFetchBlob.base64.encode(expect),d2)
229229
report(
230230
<Assert key="file should be overwritten by base64 encoded data"
231231
expect={RNFetchBlob.base64.encode(expect)}
@@ -292,23 +292,76 @@ describe('cp API test', {timeout : 10000},(report, done) => {
292292
})
293293
})
294294

295-
describe('Download file to `download` folder', (report, done) => {
296-
RNFetchBlob.fs
297-
.getSystemDirs()
295+
describe('ASCII data test', (report, done) => {
296+
let p = null
297+
let expect = 'fetch-blob-'+Date.now()
298+
fs.getSystemDirs()
298299
.then((dirs) => {
299-
return RNFetchBlob.config({
300-
path : dirs.DownloadDir + '/download-test.png'
300+
p = dirs.DocumentDir + '/ASCII-test-' + Date.now()
301+
return fs.createFile(p, 'utf8')
302+
})
303+
.then(() => {
304+
return fs.writeStream(p, 'ascii', false)
305+
})
306+
.then((ofstream) => {
307+
let qq = []
308+
for(let i=0;i<expect.length;i++) {
309+
qq.push(expect[i].charCodeAt(0))
310+
ofstream.write([expect[i].charCodeAt(0)])
311+
}
312+
ofstream.write(['g'.charCodeAt(0), 'g'.charCodeAt(0)])
313+
return ofstream.close()
314+
})
315+
.then(() => {
316+
let ifstream = fs.readStream(p, 'ascii')
317+
let res = []
318+
ifstream.onData((chunk) => {
319+
res = res.concat(chunk)
301320
})
302-
.fetch('GET', `${TEST_SERVER_URL}/public/github.png`, {
303-
Authorization : 'Bearer abde123eqweje'
321+
ifstream.onEnd(() => {
322+
res = res.map((byte) => {
323+
return String.fromCharCode(byte)
324+
}).join('')
325+
report(
326+
<Assert key="data written in ASCII format should correct"
327+
expect={expect + 'gg'}
328+
actual={res}
329+
/>)
330+
done()
304331
})
305332
})
306-
.then((resp) => {
307-
report(<Info key="image in download path">
308-
<Image
309-
style={styles.image}
310-
source={{uri : 'file://' + dirs.DownloadDir + '/download-test.png'}}/>
311-
</Info>)
333+
})
334+
335+
describe('ASCII file test', (report, done) => {
336+
let p = ''
337+
let filename = ''
338+
let expect = []
339+
let base64 = RNFetchBlob.base64
340+
fs.getSystemDirs().then((dirs) => {
341+
p = dirs.DocumentDir + '/'
342+
filename = 'ASCII-file-test' + Date.now() + '.txt'
343+
expect = 'ascii test ' + Date.now()
344+
return fs.createFile(p + filename, getASCIIArray(expect), 'ascii')
345+
})
346+
.then(() => {
347+
let rs = fs.readStream(p + filename, 'base64')
348+
let actual = ''
349+
rs.onData((chunk) => {
350+
actual += chunk
351+
})
352+
rs.onEnd(() => {
353+
report(<Assert key="written data verify"
354+
expect={expect}
355+
actual={base64.decode(actual)}/>)
312356
done()
313357
})
358+
})
314359
})
360+
361+
function getASCIIArray(str) {
362+
let r = []
363+
for(let i=0;i<str.length;i++) {
364+
r.push(str[i].charCodeAt(0))
365+
}
366+
return r
367+
}

test/test-init.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const { Assert, Comparer, Info, describe, prop } = RNTest
1818
// test environment variables
1919

2020
prop('FILENAME', `${Platform.OS}-0.5.0-${Date.now()}.png`)
21-
prop('TEST_SERVER_URL', 'http://192.168.40.7:8123')
21+
prop('TEST_SERVER_URL', 'http://192.168.0.14:8123')
2222
prop('DROPBOX_TOKEN', 'fsXcpmKPrHgAAAAAAAAAoXZhcXYWdgLpQMan6Tb_bzJ237DXhgQSev12hA-gUXt4')
2323
prop('styles', {
2424
image : {
@@ -51,7 +51,7 @@ describe('GET image from server', (report, done) => {
5151
})
5252
})
5353

54-
// require('./test-fs')
54+
require('./test-fs')
5555
// require('./test-0.1.x-0.4.x')
5656
// require('./test-0.5.x')
5757
require('./test-android')

0 commit comments

Comments
 (0)