暫無描述

test-0.10.1.js 2.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import RNTest from './react-native-testkit/'
  2. import React from 'react'
  3. import RNFetchBlob from 'react-native-fetch-blob'
  4. import {
  5. StyleSheet,
  6. Text,
  7. View,
  8. ScrollView,
  9. Linking,
  10. Platform,
  11. Dimensions,
  12. BackAndroid,
  13. AsyncStorage,
  14. Image,
  15. } from 'react-native';
  16. window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest
  17. window.Blob = RNFetchBlob.polyfill.Blob
  18. const JSONStream = RNFetchBlob.JSONStream
  19. const fs = RNFetchBlob.fs
  20. const { Assert, Comparer, Info, prop } = RNTest
  21. const describe = RNTest.config({
  22. group : '0.10.1',
  23. run : true,
  24. expand : true,
  25. timeout : 20000,
  26. })
  27. const { TEST_SERVER_URL, TEST_SERVER_URL_SSL, FILENAME, DROPBOX_TOKEN, styles } = prop()
  28. const dirs = RNFetchBlob.fs.dirs
  29. let prefix = ((Platform.OS === 'android') ? 'file://' : '')
  30. let begin = Date.now()
  31. describe('#177 multipart upload event only triggers once', (report, done) => {
  32. try{
  33. let localFile = null
  34. let filename = 'dummy-'+Date.now()
  35. RNFetchBlob.config({
  36. fileCache : true
  37. })
  38. .fetch('GET', `${TEST_SERVER_URL}/public/6mb-dummy`)
  39. .then((res) => {
  40. localFile = res.path()
  41. return RNFetchBlob.fetch('POST', `${TEST_SERVER_URL}/upload-form`, {
  42. 'Content-Type' : 'multipart/form-data',
  43. }, [
  44. { name : 'test-img', filename : filename, data: 'RNFetchBlob-file://' + localFile},
  45. { name : 'test-text', filename : 'test-text.txt', data: RNFetchBlob.base64.encode('hello.txt')},
  46. { name : 'field1', data : 'hello !!'},
  47. { name : 'field2', data : 'hello2 !!'}
  48. ])
  49. .uploadProgress({ interval : 100 },(now, total) => {
  50. console.log(now/total)
  51. })
  52. })
  53. .then((resp) => {
  54. resp = resp.json()
  55. report(
  56. <Assert key="check posted form data #1" expect="hello !!" actual={resp.fields.field1}/>,
  57. <Assert key="check posted form data #2" expect="hello2 !!" actual={resp.fields.field2}/>,
  58. )
  59. return RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/public/${filename}`)
  60. })
  61. .then((resp) => {
  62. report(<Info key="uploaded image">
  63. <Image
  64. style={styles.image}
  65. source={{ uri : 'data:image/png;base64, '+ resp.base64()}}/>
  66. </Info>)
  67. done()
  68. })
  69. } catch(err) {
  70. console.log(err)
  71. }
  72. })