|
@@ -27,84 +27,84 @@ const dirs = RNFetchBlob.fs.dirs
|
27
|
27
|
|
28
|
28
|
let prefix = ((Platform.OS === 'android') ? 'file://' : '')
|
29
|
29
|
|
30
|
|
-describe('issue #105', (report, done) => {
|
31
|
|
- let tmp = null
|
32
|
|
- RNFetchBlob
|
33
|
|
- .config({ fileCache : true })
|
34
|
|
- .fetch('GET', `${TEST_SERVER_URL}/public/github.png`)
|
35
|
|
- .then((res) => {
|
36
|
|
- tmp = res.path()
|
37
|
|
- return RNFetchBlob.fetch('POST', `${TEST_SERVER_URL}/upload-form`, {
|
38
|
|
- 'Content-Type' : 'multipart/form-data',
|
39
|
|
- 'Expect' : '100-continue'
|
40
|
|
- }, [
|
41
|
|
- { name : 'data', data : 'issue#105 test' },
|
42
|
|
- { name : 'file', filename : 'github.png', data : RNFetchBlob.wrap(tmp) }
|
43
|
|
- ])
|
44
|
|
- })
|
45
|
|
- .then((res) => {
|
46
|
|
- done()
|
47
|
|
- })
|
48
|
|
-})
|
49
|
|
-
|
50
|
|
-describe('issue #106', (report, done) => {
|
51
|
|
-
|
52
|
|
- fetch('https://rnfb-test-app.firebaseapp.com/6m-json.json')
|
53
|
|
- .then((res) => {
|
54
|
|
- console.log('## converted')
|
55
|
|
- return res.json()
|
56
|
|
- })
|
57
|
|
- .then((data) => {
|
58
|
|
- // console.log(data)
|
59
|
|
- report(<Assert key="fetch request success" expect={20000} actual={data.total}/>)
|
60
|
|
- done()
|
61
|
|
- })
|
62
|
|
-
|
63
|
|
-})
|
64
|
|
-
|
65
|
|
-describe('issue #111 get redirect destination', (report, done) => {
|
66
|
|
- RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/redirect`)
|
67
|
|
- .then((res) => {
|
68
|
|
- report(
|
69
|
|
- <Assert key="redirect history should tracable"
|
70
|
|
- expect={2}
|
71
|
|
- actual={res.info().redirects.length}/>,
|
72
|
|
- <Assert key="redirect history verify"
|
73
|
|
- expect={[`${TEST_SERVER_URL}/redirect`, `${TEST_SERVER_URL}/public/github.png`]}
|
74
|
|
- comparer={Comparer.equalToArray}
|
75
|
|
- actual={res.info().redirects}/>,
|
76
|
|
- )
|
77
|
|
- done()
|
78
|
|
- })
|
79
|
|
-})
|
80
|
|
-
|
81
|
|
-describe('chunked encoding option test', (report, done) => {
|
82
|
|
-
|
83
|
|
- let path = null
|
84
|
|
- let base64 = null
|
85
|
|
-
|
86
|
|
- RNFetchBlob
|
87
|
|
- // .config({ fileCache : true })
|
88
|
|
- .fetch('GET', `${TEST_SERVER_URL}/public/1600k-img-dummy.jpg`)
|
89
|
|
- .then((res) => {
|
90
|
|
- base64 = res.base64()
|
91
|
|
- return RNFetchBlob
|
92
|
|
- .fetch('POST', `${TEST_SERVER_URL}/upload`, {
|
93
|
|
- 'Content-Type' : 'application/octet-stream;BASE64'
|
94
|
|
- }, base64)
|
95
|
|
- })
|
96
|
|
- .then((res) => {
|
97
|
|
- let headers = res.info().headers
|
98
|
|
- console.log(res.text())
|
99
|
|
- report(<Assert key="request should not use chunked encoding"
|
100
|
|
- expect={undefined}
|
101
|
|
- actual={headers['transfer-encoding']}/>)
|
102
|
|
- fs.unlink(path)
|
103
|
|
- done()
|
104
|
|
- })
|
105
|
|
-})
|
106
|
|
-
|
107
|
|
-describe('#118 ', (report, done) => {
|
|
30
|
+// describe('issue #105', (report, done) => {
|
|
31
|
+// let tmp = null
|
|
32
|
+// RNFetchBlob
|
|
33
|
+// .config({ fileCache : true })
|
|
34
|
+// .fetch('GET', `${TEST_SERVER_URL}/public/github.png`)
|
|
35
|
+// .then((res) => {
|
|
36
|
+// tmp = res.path()
|
|
37
|
+// return RNFetchBlob.fetch('POST', `${TEST_SERVER_URL}/upload-form`, {
|
|
38
|
+// 'Content-Type' : 'multipart/form-data',
|
|
39
|
+// 'Expect' : '100-continue'
|
|
40
|
+// }, [
|
|
41
|
+// { name : 'data', data : 'issue#105 test' },
|
|
42
|
+// { name : 'file', filename : 'github.png', data : RNFetchBlob.wrap(tmp) }
|
|
43
|
+// ])
|
|
44
|
+// })
|
|
45
|
+// .then((res) => {
|
|
46
|
+// done()
|
|
47
|
+// })
|
|
48
|
+// })
|
|
49
|
+//
|
|
50
|
+// describe('issue #106', (report, done) => {
|
|
51
|
+//
|
|
52
|
+// fetch('https://rnfb-test-app.firebaseapp.com/6m-json.json')
|
|
53
|
+// .then((res) => {
|
|
54
|
+// console.log('## converted')
|
|
55
|
+// return res.json()
|
|
56
|
+// })
|
|
57
|
+// .then((data) => {
|
|
58
|
+// // console.log(data)
|
|
59
|
+// report(<Assert key="fetch request success" expect={20000} actual={data.total}/>)
|
|
60
|
+// done()
|
|
61
|
+// })
|
|
62
|
+//
|
|
63
|
+// })
|
|
64
|
+//
|
|
65
|
+// describe('issue #111 get redirect destination', (report, done) => {
|
|
66
|
+// RNFetchBlob.fetch('GET', `${TEST_SERVER_URL}/redirect`)
|
|
67
|
+// .then((res) => {
|
|
68
|
+// report(
|
|
69
|
+// <Assert key="redirect history should tracable"
|
|
70
|
+// expect={2}
|
|
71
|
+// actual={res.info().redirects.length}/>,
|
|
72
|
+// <Assert key="redirect history verify"
|
|
73
|
+// expect={[`${TEST_SERVER_URL}/redirect`, `${TEST_SERVER_URL}/public/github.png`]}
|
|
74
|
+// comparer={Comparer.equalToArray}
|
|
75
|
+// actual={res.info().redirects}/>,
|
|
76
|
+// )
|
|
77
|
+// done()
|
|
78
|
+// })
|
|
79
|
+// })
|
|
80
|
+//
|
|
81
|
+// describe('chunked encoding option test', (report, done) => {
|
|
82
|
+//
|
|
83
|
+// let path = null
|
|
84
|
+// let base64 = null
|
|
85
|
+//
|
|
86
|
+// RNFetchBlob
|
|
87
|
+// // .config({ fileCache : true })
|
|
88
|
+// .fetch('GET', `${TEST_SERVER_URL}/public/1600k-img-dummy.jpg`)
|
|
89
|
+// .then((res) => {
|
|
90
|
+// base64 = res.base64()
|
|
91
|
+// return RNFetchBlob
|
|
92
|
+// .fetch('POST', `${TEST_SERVER_URL}/upload`, {
|
|
93
|
+// 'Content-Type' : 'application/octet-stream;BASE64'
|
|
94
|
+// }, base64)
|
|
95
|
+// })
|
|
96
|
+// .then((res) => {
|
|
97
|
+// let headers = res.info().headers
|
|
98
|
+// console.log(res.text())
|
|
99
|
+// report(<Assert key="request should not use chunked encoding"
|
|
100
|
+// expect={undefined}
|
|
101
|
+// actual={headers['transfer-encoding']}/>)
|
|
102
|
+// fs.unlink(path)
|
|
103
|
+// done()
|
|
104
|
+// })
|
|
105
|
+// })
|
|
106
|
+
|
|
107
|
+describe('#118 readStream performance prepare the file', (report, done) => {
|
108
|
108
|
let cache = null
|
109
|
109
|
let size = 0
|
110
|
110
|
let tick = Date.now()
|
|
@@ -114,59 +114,62 @@ describe('#118 ', (report, done) => {
|
114
|
114
|
RNFetchBlob.config({fileCache : true})
|
115
|
115
|
.fetch('GET', `${TEST_SERVER_URL}/public/22mb-dummy`)
|
116
|
116
|
.then((res) => {
|
|
117
|
+ report(<Info key="preparation complete"><Text>start in 3 seconds</Text></Info>)
|
117
|
118
|
cache = res.path()
|
118
|
|
- return fs.readStream(cache, 'utf8', 102400)
|
|
119
|
+ setTimeout(() => {
|
|
120
|
+ fs.readStream(cache, 'utf8', 102400)
|
|
121
|
+ .then((stream) => {
|
|
122
|
+ stream.open()
|
|
123
|
+ start = Date.now()
|
|
124
|
+ stream.onData((chunk) => {
|
|
125
|
+ count++
|
|
126
|
+ size += chunk.length
|
|
127
|
+ if(Date.now() - tick > 500) {
|
|
128
|
+ tick = Date.now()
|
|
129
|
+ report(
|
|
130
|
+ <Info key="size" uid="100"><Text>{size} bytes read</Text></Info>)
|
|
131
|
+ }
|
|
132
|
+ })
|
|
133
|
+ stream.onEnd(() => {
|
|
134
|
+ report(
|
|
135
|
+ <Info key="size" uid="100"><Text>{size} bytes read</Text></Info>,
|
|
136
|
+ <Info key="elapsed"><Text>{Date.now() - start} ms</Text></Info>,
|
|
137
|
+ <Info key="events"><Text>{count} times</Text></Info>,
|
|
138
|
+ <Assert key="JS thread is not blocked" expect={true} actual={true}/>,)
|
|
139
|
+ fs.stat(cache).then((stat) => {
|
|
140
|
+ report(
|
|
141
|
+ <Info key="info"><Text>{JSON.stringify(stat)}</Text></Info>)
|
|
142
|
+ fs.unlink(cache)
|
|
143
|
+ done()
|
|
144
|
+ })
|
|
145
|
+ })
|
|
146
|
+ })
|
|
147
|
+ }, 3000)
|
119
|
148
|
})
|
120
|
|
- .then((stream) => {
|
121
|
|
- stream.open()
|
122
|
|
- start = Date.now()
|
123
|
|
- stream.onData((chunk) => {
|
124
|
|
- count++
|
125
|
|
- size += chunk.length
|
126
|
|
- if(Date.now() - tick > 500) {
|
127
|
|
- tick = Date.now()
|
128
|
|
- report(
|
129
|
|
- <Info key="size" uid="100"><Text>{size} bytes read</Text></Info>)
|
130
|
|
- }
|
131
|
|
- })
|
132
|
|
- stream.onEnd(() => {
|
133
|
|
- report(
|
134
|
|
- <Info key="size" uid="100"><Text>{size} bytes read</Text></Info>,
|
135
|
|
- <Info key="elapsed"><Text>{Date.now() - start} ms</Text></Info>,
|
136
|
|
- <Info key="events"><Text>{count} times</Text></Info>,
|
137
|
|
- <Assert key="JS thread is not blocked" expect={true} actual={true}/>,)
|
138
|
|
- fs.stat(cache).then((stat) => {
|
139
|
|
- report(
|
140
|
|
- <Info key="info"><Text>{JSON.stringify(stat)}</Text></Info>)
|
141
|
|
- fs.unlink(cache)
|
142
|
|
- })
|
143
|
|
- })
|
144
|
|
- })
|
145
|
|
-
|
146
|
149
|
})
|
147
|
150
|
|
148
|
|
-describe('issue #120 upload progress should work when sending body as-is', (report, done) => {
|
149
|
|
-
|
150
|
|
- let data = RNTest.prop('image')
|
151
|
|
- let tick = 0
|
152
|
|
-
|
153
|
|
- let task = RNFetchBlob.fetch('POST', 'https://content.dropboxapi.com/2/files/upload', {
|
154
|
|
- Authorization : `Bearer ${DROPBOX_TOKEN}`,
|
155
|
|
- 'Dropbox-API-Arg': '{\"path\": \"/rn-upload/'+FILENAME+'\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}',
|
156
|
|
- 'Content-Type' : 'text/plain; charset=dropbox-cors-hack',
|
157
|
|
- }, data)
|
158
|
|
-
|
159
|
|
- task.uploadProgress((current, total) => {
|
160
|
|
- tick ++
|
161
|
|
- })
|
162
|
|
- .then((res) => {
|
163
|
|
- let resp = res.json()
|
164
|
|
- report(
|
165
|
|
- <Info key="viewer"><Text>{JSON.stringify(resp)}</Text></Info>,
|
166
|
|
- <Assert key="event should be triggered"
|
167
|
|
- expect={tick}
|
168
|
|
- comparer={Comparer.greater} actual={0}/>)
|
169
|
|
- done()
|
170
|
|
- })
|
171
|
|
-
|
172
|
|
-})
|
|
151
|
+// describe('issue #120 upload progress should work when sending body as-is', (report, done) => {
|
|
152
|
+//
|
|
153
|
+// let data = RNTest.prop('image')
|
|
154
|
+// let tick = 0
|
|
155
|
+//
|
|
156
|
+// let task = RNFetchBlob.fetch('POST', 'https://content.dropboxapi.com/2/files/upload', {
|
|
157
|
+// Authorization : `Bearer ${DROPBOX_TOKEN}`,
|
|
158
|
+// 'Dropbox-API-Arg': '{\"path\": \"/rn-upload/'+FILENAME+'\",\"mode\": \"add\",\"autorename\": true,\"mute\": false}',
|
|
159
|
+// 'Content-Type' : 'text/plain; charset=dropbox-cors-hack',
|
|
160
|
+// }, data)
|
|
161
|
+//
|
|
162
|
+// task.uploadProgress((current, total) => {
|
|
163
|
+// tick ++
|
|
164
|
+// })
|
|
165
|
+// .then((res) => {
|
|
166
|
+// let resp = res.json()
|
|
167
|
+// report(
|
|
168
|
+// <Info key="viewer"><Text>{JSON.stringify(resp)}</Text></Info>,
|
|
169
|
+// <Assert key="event should be triggered"
|
|
170
|
+// expect={tick}
|
|
171
|
+// comparer={Comparer.greater} actual={0}/>)
|
|
172
|
+// done()
|
|
173
|
+// })
|
|
174
|
+//
|
|
175
|
+// })
|