Repository URL to install this package:
| 
      
        
        
        Version: 
        
         
          
          2.0.11-8  ▾
        
         | 
| 
    
    notion-enhanced
  
    /
        
    usr
  
        /
        
    lib
  
        /
        
    notion-enhanced
  
        /
        
    resources
  
        /
        
    app
  
        /
        
    node_modules
  
        /
        
    cld
  
        /
        
    test
  
        /
        runner.js
   | 
|---|
#!/usr/bin/env node
var cld    = require('../index');
var data   = require('./data');
var assert = require('assert');
var _      = require('underscore');
function runCoreTests(detected) {
  _.each(data.all, function(val, key) {
    cld.detect(val.sample, function(err, result) {
      assert.equal(err, null);
      assert.equal(_.isArray(result.languages), true);
      assert.equal(result.languages.length > 0, true);
      assert.equal(val.name, result.languages[0].name);
      detected[val.name] = true;
    });
  });
}
function runChunkTests() {
  _.each(data.all, function(val, key) {
    cld.detect(val.sample, function(err, result) {
      assert.equal(result.textBytes > 0, true);
      if (val.sample == data.frEnLatn) {
        assert.equal(_.isArray(result.chunks), true);
        assert.equal(result.chunks.length, 3);
        var chunkCodes = _.pluck(result.chunks, 'code');
        assert.deepEqual(chunkCodes, ['en', 'fr', 'en'])
      }
    });
  });
}
function runEncodingHintTests() {
  _.each(data.all, function(item, idx) {
    _.each(cld.ENCODINGS, function(encoding, idx) {
      cld.detect(item.sample, {encodingHint:encoding}, function(err, result) {
        assert.equal(err, null);
        assert.equal(_.isArray(result.languages), true);
        assert.equal(result.languages.length > 0, true);
      });
    });
  });
  cld.detect(data.all[0].sample, {encodingHint:'p'}, function(err, result) {
    assert.equal(err.message, 'Invalid encodingHint, see ENCODINGS');
  });
}
function runLanguageHintTests() {
  _.each(data.all, function(item, idx) {
    _.each(_.keys(cld.LANGUAGES), function(name, idx) {
      cld.detect(item.sample, {languageHint:name}, function(err, result) {
      if (err) {
        assert.equal(err.message, 'Failed to identify language');
      }
      else {
        assert.equal(err, null);
        assert.equal(_.isArray(result.languages), true);
      }
      });
    });
    _.each(_.values(cld.LANGUAGES), function(code, idx) {
      cld.detect(item.sample, {languageHint:code}, function(err, result) {
      if (err) {
        assert.equal(err.message, 'Failed to identify language');
      }
      else {
        assert.equal(err, null);
        assert.equal(_.isArray(result.languages), true);
      }
      });
    });
  });
  cld.detect(data.all[0].sample, {languageHint:'foo-bar-bas'}, function(err, result) {
    assert.equal(err.message, 'Invalid languageHint, see LANGUAGES');
  });
}
function runTldHintTests() {
  _.each(data.all, function(item, idx) {
    cld.detect(item.sample, {tldHint:'edu'}, function(err, result) {
      assert.equal(err, null);
      assert.equal(_.isArray(result.languages), true);
      assert.equal(result.languages.length > 0, true);
    });
    cld.detect(item.sample, {tldHint:'com'}, function(err, result) {
      assert.equal(err, null);
      assert.equal(_.isArray(result.languages), true);
      assert.equal(result.languages.length > 0, true);
    });
    cld.detect(item.sample, {tldHint:'id'}, function(err, result) {
      assert.equal(err, null);
      assert.equal(_.isArray(result.languages), true);
      assert.equal(result.languages.length > 0, true);
    });
  });
}
function runHttpHintTests() {
  _.each(data.all, function(item, idx) {
    cld.detect(item.sample, {httpHint:'mi,en'}, function(err, result) {
      if (err) {
        assert.equal(err.message, 'Failed to identify language');
      }
      else {
        assert.equal(err, null);
        assert.equal(_.isArray(result.languages), true);
      }
    });
  });
}
function runUnreliableTests() {
  cld.detect('interaktive infografik \xc3\xbcber videospielkonsolen', function(err, result) {
    assert.equal(err.message, 'Failed to identify language');
  });
}
function runCrossCheckTests(detected) {
  // Confirm that we didn't detect languages that are not listed in DETECTED_LANGUAGES
  _.each(_.values(cld.DETECTED_LANGUAGES), function(val, key) {
    delete detected[val];
  });
  assert.equal(_.keys(detected), 0);
}
var detected = {};
runCoreTests(detected);
runChunkTests();
runEncodingHintTests();
runLanguageHintTests();
runTldHintTests();
runHttpHintTests();
runUnreliableTests();
runCrossCheckTests(detected);