mirror of
https://github.com/mapbox/node-fontnik.git
synced 2025-12-08 20:16:18 +00:00
48 lines
1.7 KiB
JavaScript
48 lines
1.7 KiB
JavaScript
'use strict';
|
|
|
|
const fontnik = require('../');
|
|
const tape = require('tape');
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
const protobuf = require('protocol-buffers');
|
|
const messages = protobuf(fs.readFileSync(path.join(__dirname, '../proto/glyphs.proto')));
|
|
const glyphs = messages.glyphs;
|
|
|
|
var openSans512 = fs.readFileSync(__dirname + '/fixtures/opensans.512.767.pbf'),
|
|
arialUnicode512 = fs.readFileSync(__dirname + '/fixtures/arialunicode.512.767.pbf'),
|
|
league512 = fs.readFileSync(__dirname + '/fixtures/league.512.767.pbf'),
|
|
composite512 = fs.readFileSync(__dirname + '/fixtures/opensans.arialunicode.512.767.pbf'),
|
|
triple512 = fs.readFileSync(__dirname + '/fixtures/league.opensans.arialunicode.512.767.pbf');
|
|
|
|
tape('compositing two pbfs', function(t) {
|
|
fontnik.composite([openSans512, arialUnicode512], (err, data) => {
|
|
var composite = glyphs.decode(data);
|
|
var expected = glyphs.decode(composite512);
|
|
|
|
t.ok(composite.stacks, 'has stacks');
|
|
t.equal(composite.stacks.length, 1, 'has one stack');
|
|
|
|
var stack = composite.stacks[0];
|
|
|
|
t.ok(stack.name, 'is a named stack');
|
|
t.ok(stack.range, 'has a glyph range');
|
|
t.deepEqual(composite, expected, 'equals a server-composited stack');
|
|
|
|
composite = glyphs.encode(composite);
|
|
expected = glyphs.encode(expected);
|
|
|
|
t.deepEqual(composite, expected, 're-encodes nicely');
|
|
|
|
fontnik.composite([league512, composite], (err, data2) => {
|
|
var recomposite = glyphs.decode(data2),
|
|
reexpect = glyphs.decode(triple512);
|
|
|
|
t.deepEqual(recomposite, reexpect, 'can add on a third for good measure');
|
|
|
|
t.end();
|
|
});
|
|
|
|
});
|
|
});
|