aboutsummaryrefslogtreecommitdiff
path: root/src/js/tests/specs/settings.js
blob: 088b94d2e8280e33ee7b2bb452b6aa5ac44e2070 (plain)
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

describe('fiveui.Settings', function() {

  var settings;

  beforeEach(function() {
    settings = new fiveui.Settings(new MockStorage());
  });


  it('doesn\'t hold on to removed keys', function() {
    var key   = 'key';
    var value = 'value';
    var id    = settings.set(key, value);
    settings.remove(key);

    var result = settings.get(id);
    expect(result).toBe(null);
  });


  it('round trips values through set/get', function() {
    var key   = 'key';
    var value = 'value';

    settings.set(key, value);
    expect(settings.get(key)).toEqual(value);
  });

  it('matches urls when there\s a valid pattern registered', function() {
    var rset = new fiveui.RuleSet({ patterns: ['http://.*'] });
    settings.addRuleSet(rset);
    expect(settings.checkUrl('http://foo').id).toBe(0);
  });

  it('doesn\'t match urls when there are no patterns registered', function() {
    expect(settings.checkUrl('http://foo')).toBe(undefined);
  });

  it('removes rules successfully', function() {
    var rsId = settings.addRuleSet(new fiveui.RuleSet({
      name:        'rs',
      description: '',
      rules:       []
    }));
    expect(rs).not.toBe(null);

    var rsCount1 = settings.getRuleSets().length;
    settings.remRuleSet(rsId);

    var rsCount2 = settings.getRuleSets().length;
    expect(rsCount1).toEqual(rsCount2 + 1);

    var rs = settings.getRuleSet(rsId);
    expect(rs).toBe(null);
  });

});