~ubuntu-branches/ubuntu/raring/node-sqlite3/raring

« back to all changes in this revision

Viewing changes to test/blob.test.js

  • Committer: Package Import Robot
  • Author(s): David Paleino
  • Date: 2011-10-13 18:57:35 UTC
  • Revision ID: package-import@ubuntu.com-20111013185735-d0ckhbjcvlwgai48
Tags: upstream-2.0.17+ds1
ImportĀ upstreamĀ versionĀ 2.0.17+ds1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
var sqlite3 = require('sqlite3'),
 
2
    Step = require('step'),
 
3
    fs = require('fs'),
 
4
    assert = require('assert')
 
5
    Buffer = require('buffer').Buffer;
 
6
 
 
7
if (process.setMaxListeners) process.setMaxListeners(0);
 
8
 
 
9
// lots of elmo
 
10
var elmo = fs.readFileSync(__dirname + '/support/elmo.png');
 
11
 
 
12
exports['blob test'] = function(beforeExit) {
 
13
    var db = new sqlite3.Database(':memory:');
 
14
    var total = 10;
 
15
    var inserted = 0;
 
16
    var retrieved = 0;
 
17
 
 
18
    db.serialize(function() {
 
19
        db.run('CREATE TABLE elmos (id INT, image BLOB)');
 
20
 
 
21
        for (var i = 0; i < total; i++) {
 
22
            db.run('INSERT INTO elmos (id, image) VALUES (?, ?)', i, elmo, function(err) {
 
23
                if (err) throw err;
 
24
                inserted++;
 
25
            });
 
26
        }
 
27
 
 
28
        db.all('SELECT id, image FROM elmos ORDER BY id', function(err, rows) {
 
29
            if (err) throw err;
 
30
            for (var i = 0; i < rows.length; i++) {
 
31
                assert.ok(Buffer.isBuffer(rows[i].image));
 
32
                assert.ok(elmo.length, rows[i].image);
 
33
 
 
34
                for (var j = 0; j < elmo.length; j++) {
 
35
                    if (elmo[j] !== rows[i].image[j]) {
 
36
                        assert.ok(false, "Wrong byte");
 
37
                    }
 
38
                }
 
39
 
 
40
                retrieved++;
 
41
            }
 
42
        });
 
43
 
 
44
    });
 
45
 
 
46
    beforeExit(function() {
 
47
        assert.equal(inserted, total);
 
48
        assert.equal(retrieved, total);
 
49
    })
 
50
}