all files / spec/ui/ FindForm.js

100% Statements 46/46
100% Branches 0/0
100% Functions 9/9
100% Lines 46/46
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73                                                     
#!/usr/bin/env node
/*global require, global*/
 
var test = require('tape');
 
var FindForm = require('../../lib/ui/FindForm');
 
test("FindForm._regExpRegExp", function (t) {
  t.test("_regExpRegExp", function (st) {
    var regex = FindForm._regExpRegExp;
 
    st.test("should not match plain strings", function (sst) {
      sst.plan(1);
      sst.equal('(.*)\\1[^a]+'.match(regex), null);
    });
 
    st.test("should not match empty regex", function (sst) {
      sst.plan(1);
      sst.equal('//'.match(regex), null);
    });
 
    st.test("should support basic regex", function (sst) {
      sst.plan(4);
      var m = '/(.*)\\1[^a]+/'.match(regex);
 
      sst.notEqual(m, null);
      sst.equal(m.length, 3);
      sst.equal(m[1], '(.*)\\1[^a]+');
      sst.equal(m[2], '');
    });
 
    st.test("should support case insensitive modifier", function (sst) {
      sst.plan(4);
      var m = '/abc/i'.match(regex);
 
      sst.notEqual(m, null);
      sst.equal(m.length, 3);
      sst.equal(m[1], 'abc');
      sst.equal(m[2], 'i');
    });
 
    st.test("should support global modifier", function (sst) {
      sst.plan(4);
      var m = '/abc/g'.match(regex);
 
      sst.notEqual(m, null);
      sst.equal(m.length, 3);
      sst.equal(m[1], 'abc');
      sst.equal(m[2], 'g');
    });
 
    st.test("should support multiline modifier", function (sst) {
      sst.plan(4);
      var m = '/abc/m'.match(regex);
 
      sst.notEqual(m, null);
      sst.equal(m.length, 3);
      sst.equal(m[1], 'abc');
      sst.equal(m[2], 'm');
    });
 
    st.test("should support multiple modifiers", function (sst) {
      sst.plan(4);
      var m = '/abc/gmi'.match(regex);
 
      sst.notEqual(m, null);
      sst.equal(m.length, 3);
      sst.equal(m[1], 'abc');
      sst.equal(m[2], 'gmi');
    });
  });
});