|
17 | 17 | 'use strict'; |
18 | 18 |
|
19 | 19 | var assert = require('assert'); |
| 20 | +var async = require('async'); |
20 | 21 | var fs = require('fs'); |
21 | 22 | var http = require('http'); |
22 | 23 | var is = require('is'); |
23 | 24 | var multiline = require('multiline'); |
24 | 25 | var normalizeNewline = require('normalize-newline'); |
25 | 26 | var path = require('path'); |
| 27 | +var Storage = require('@google-cloud/storage'); |
| 28 | +var uuid = require('node-uuid'); |
26 | 29 |
|
27 | 30 | var env = require('../../../system-test/env.js'); |
28 | 31 | var Vision = require('../'); |
29 | 32 |
|
30 | 33 | describe('Vision', function() { |
31 | | - var vision; |
32 | 34 | var IMAGES = { |
33 | 35 | logo: path.join(__dirname, 'data/logo.jpg'), |
34 | 36 | rushmore: path.join(__dirname, 'data/rushmore.jpg'), |
35 | 37 | text: path.join(__dirname, 'data/text.png'), |
36 | 38 | malformed: path.join(__dirname, 'data/index.yaml') |
37 | 39 | }; |
38 | 40 |
|
39 | | - beforeEach(function() { |
40 | | - vision = new Vision(env); |
| 41 | + var TESTS_PREFIX = 'gcloud-vision-test'; |
| 42 | + |
| 43 | + var storage = new Storage(env); |
| 44 | + var vision = new Vision(env); |
| 45 | + |
| 46 | + var bucket = storage.bucket(generateName()); |
| 47 | + var file = bucket.file('logo.jpg'); |
| 48 | + |
| 49 | + before(function(done) { |
| 50 | + bucket.create(function(err) { |
| 51 | + if (err) { |
| 52 | + done(err); |
| 53 | + return; |
| 54 | + } |
| 55 | + |
| 56 | + bucket.upload(IMAGES.logo, done); |
| 57 | + }); |
| 58 | + }); |
| 59 | + |
| 60 | + after(function(done) { |
| 61 | + storage.getBuckets({ |
| 62 | + prefix: TESTS_PREFIX |
| 63 | + }, function(err, buckets) { |
| 64 | + if (err) { |
| 65 | + done(err); |
| 66 | + return; |
| 67 | + } |
| 68 | + |
| 69 | + function deleteBucket(bucket, callback) { |
| 70 | + bucket.deleteFiles(function(err) { |
| 71 | + if (err) { |
| 72 | + callback(err); |
| 73 | + return; |
| 74 | + } |
| 75 | + |
| 76 | + bucket.delete(callback); |
| 77 | + }); |
| 78 | + } |
| 79 | + |
| 80 | + async.each(buckets, deleteBucket, done); |
| 81 | + }); |
41 | 82 | }); |
42 | 83 |
|
43 | 84 | it('should detect from a URL', function(done) { |
@@ -66,6 +107,19 @@ describe('Vision', function() { |
66 | 107 | }); |
67 | 108 | }); |
68 | 109 |
|
| 110 | + it('should detect from a File', function(done) { |
| 111 | + vision.detect(file, ['logos'], function(err, logos) { |
| 112 | + assert.ifError(err); |
| 113 | + |
| 114 | + var expected = ['Google']; |
| 115 | + expected.errors = []; |
| 116 | + |
| 117 | + assert.deepEqual(logos, expected); |
| 118 | + |
| 119 | + done(); |
| 120 | + }); |
| 121 | + }); |
| 122 | + |
69 | 123 | it('should detect from a Buffer', function(done) { |
70 | 124 | var buffer = fs.readFileSync(IMAGES.logo); |
71 | 125 | vision.detect(buffer, ['logos'], function(err, logos) { |
@@ -525,4 +579,8 @@ describe('Vision', function() { |
525 | 579 | }); |
526 | 580 | }); |
527 | 581 | }); |
| 582 | + |
| 583 | + function generateName() { |
| 584 | + return TESTS_PREFIX + uuid.v1(); |
| 585 | + } |
528 | 586 | }); |
0 commit comments