Browse Source

Add test cases for #45

Ben Hsieh 8 years ago
parent
commit
271d9f5ecf
2 changed files with 66 additions and 12 deletions
  1. 58
    4
      test/test-0.6.2.js
  2. 8
    8
      test/test-init.js

+ 58
- 4
test/test-0.6.2.js View File

18
 const describe = RNTest.config({
18
 const describe = RNTest.config({
19
   group : '0.6.2',
19
   group : '0.6.2',
20
   run : true,
20
   run : true,
21
-  expand : true,
21
+  expand : false,
22
   timeout : 12000,
22
   timeout : 12000,
23
 })
23
 })
24
-const { TEST_SERVER_URL_SSL, FILENAME, DROPBOX_TOKEN, styles } = prop()
24
+const { TEST_SERVER_URL_SSL, DROPBOX_TOKEN, styles } = prop()
25
 const  dirs = RNFetchBlob.fs.dirs
25
 const  dirs = RNFetchBlob.fs.dirs
26
 
26
 
27
 let prefix = ((Platform.OS === 'android') ? 'file://' : '')
27
 let prefix = ((Platform.OS === 'android') ? 'file://' : '')
28
 
28
 
29
+describe('upload asset from camera roll', (report, done) => {
30
+  let imgName = `image-from-camera-roll-${Platform.OS}.jpg`
31
+  CameraRoll.getPhotos({first : 10})
32
+    .then((resp) => {
33
+      let url = resp.edges[0].node.image.uri
34
+      return fs.readFile(url, 'base64')
35
+    })
36
+    .then((data) => {
37
+      return RNFetchBlob.fetch('POST', 'https://content.dropboxapi.com/2/files/upload', {
38
+        Authorization : `Bearer ${DROPBOX_TOKEN}`,
39
+        'Dropbox-API-Arg': `{\"path\": \"/rn-upload/${imgName}\",\"mode\": \"add\",\"autorename\": false,\"mute\": false}`,
40
+        'Content-Type' : 'application/octet-stream',
41
+      }, data)
42
+    })
43
+    .then((resp) => {
44
+      resp = resp.json()
45
+      report(
46
+        <Assert key="confirm the file has been uploaded" expect={imgName} actual={resp.name}/>
47
+      )
48
+      done()
49
+    })
50
+
51
+})
29
 
52
 
30
 describe('access assets from camera roll', (report, done) => {
53
 describe('access assets from camera roll', (report, done) => {
31
   let photo = null
54
   let photo = null
48
 })
71
 })
49
 
72
 
50
 describe('read asset in app bundle',(report, done) => {
73
 describe('read asset in app bundle',(report, done) => {
51
-  let target = 'bundle-assets://test-asset2.png'
74
+  let target = fs.asset('test-asset2.png')
52
   fs.readFile(target, 'base64')
75
   fs.readFile(target, 'base64')
53
   .then((data) => {
76
   .then((data) => {
54
     report(<Info key="asset image">
77
     report(<Info key="asset image">
56
         style={styles.image}
79
         style={styles.image}
57
         source={{uri: `data:image/png;base64, ${data}`}}/>
80
         source={{uri: `data:image/png;base64, ${data}`}}/>
58
     </Info>)
81
     </Info>)
59
-    return fs.readFile('bundle-assets://test-asset1.json', 'utf8')
82
+    return fs.readFile(fs.asset('test-asset1.json'), 'utf8')
60
   })
83
   })
61
   .then((resp) => {
84
   .then((resp) => {
62
     report(
85
     report(
66
       done()
89
       done()
67
   })
90
   })
68
 })
91
 })
92
+
93
+describe('stat assets in app', (report, done) => {
94
+  fs.stat(fs.asset('test-asset2.png'))
95
+    .then((data) => {
96
+      report(<Info key="list of assets">
97
+        <Text>{JSON.stringify(data)}</Text>
98
+      </Info>)
99
+      done()
100
+    })
101
+})
102
+
103
+describe('copy asset', (report, done) => {
104
+  let dest = `${dirs.DocumentDir}/test-asset-1-${Date.now()}.json`
105
+  fs.cp(fs.asset('test-asset1.json'), dest)
106
+    .then(() => fs.readFile(dest, 'utf8'))
107
+    .then((data) => {
108
+      report(<Assert key="asset copied correctly"
109
+        expect={'asset#1'}
110
+        actual={JSON.parse(data).secret}/>)
111
+      return fs.stat(fs.asset('test-asset1.json'))
112
+    })
113
+    .then((stat) => {
114
+      report(<Assert key="file size check"
115
+        expect={27}
116
+        actual={Math.floor(stat.size)}/>,
117
+      <Info key="dest file info">
118
+        <Text>{JSON.stringify(stat)}</Text>
119
+      </Info>)
120
+      done()
121
+    })
122
+})

+ 8
- 8
test/test-init.js View File

18
 // test environment variables
18
 // test environment variables
19
 
19
 
20
 prop('FILENAME', `${Platform.OS}-0.7.0-${Date.now()}.png`)
20
 prop('FILENAME', `${Platform.OS}-0.7.0-${Date.now()}.png`)
21
-prop('TEST_SERVER_URL', 'http://192.168.16.70:8123')
22
-prop('TEST_SERVER_URL_SSL', 'https://192.168.16.70:8124')
21
+prop('TEST_SERVER_URL', 'http://192.168.0.11:8123')
22
+prop('TEST_SERVER_URL_SSL', 'https://192.168.0.11:8124')
23
 prop('DROPBOX_TOKEN', 'fsXcpmKPrHgAAAAAAAAAoXZhcXYWdgLpQMan6Tb_bzJ237DXhgQSev12hA-gUXt4')
23
 prop('DROPBOX_TOKEN', 'fsXcpmKPrHgAAAAAAAAAoXZhcXYWdgLpQMan6Tb_bzJ237DXhgQSev12hA-gUXt4')
24
 prop('styles', {
24
 prop('styles', {
25
   image : {
25
   image : {
51
     })
51
     })
52
 })
52
 })
53
 //
53
 //
54
-// require('./test-0.1.x-0.4.x')
55
-// require('./test-0.5.1')
56
-// require('./test-0.5.2')
57
-// require('./test-0.6.0')
54
+require('./test-0.1.x-0.4.x')
55
+require('./test-0.5.1')
56
+require('./test-0.5.2')
57
+require('./test-0.6.0')
58
 require('./test-0.6.2')
58
 require('./test-0.6.2')
59
-// require('./test-fs')
60
-// require('./test-android')
59
+require('./test-fs')
60
+require('./test-android')