示例#1
0
        'test _getLookupPaths': function() {
            var dims = readFixtureFile('dimensions.json'),
                ycb = new libycb.Ycb(dims),
                context, paths, expected;
            context = {
                'region': 'ir',
                'environment': 'preproduction',
                'lang': 'fr_FR'
            };
            paths = ycb._getLookupPaths(context, {useAllDimensions: true});

            expected = [
                "*/*/*/*/*/*/*/*/*/*/*",
                "*/*/*/*/*/*/*/gb/*/*/*",
                "*/*/*/*/*/*/*/ir/*/*/*",
                "*/*/*/*/*/*/fr/*/*/*/*",
                "*/*/*/*/*/*/fr/gb/*/*/*",
                "*/*/*/*/*/*/fr/ir/*/*/*",
                "*/*/*/*/*/*/fr_FR/*/*/*/*",
                "*/*/*/*/*/*/fr_FR/gb/*/*/*",
                "*/*/*/*/*/*/fr_FR/ir/*/*/*",
                "preproduction/*/*/*/*/*/*/*/*/*/*",
                "preproduction/*/*/*/*/*/*/gb/*/*/*",
                "preproduction/*/*/*/*/*/*/ir/*/*/*",
                "preproduction/*/*/*/*/*/fr/*/*/*/*",
                "preproduction/*/*/*/*/*/fr/gb/*/*/*",
                "preproduction/*/*/*/*/*/fr/ir/*/*/*",
                "preproduction/*/*/*/*/*/fr_FR/*/*/*/*",
                "preproduction/*/*/*/*/*/fr_FR/gb/*/*/*",
                "preproduction/*/*/*/*/*/fr_FR/ir/*/*/*"
            ];
            AA.itemsAreEqual(expected, paths);
        },
示例#2
0
        'test _flattenDimension': function() {
            var dims = readFixtureFile('dimensions.json'),
                ycb = new libycb.Ycb(dims),
                flat = ycb._flattenDimension('', dims[0].dimensions[6]['lang']);

            A.areSame('en', flat['en']);
            A.areSame('en_CA', flat['en/en_CA']);
            A.areSame('fr', flat['fr']);
            A.areSame('fr_CA', flat['fr/fr_FR/fr_CA']);
        },
示例#3
0
        'test _getLookupPath': function() {
            var dims = readFixtureFile('dimensions.json'),
                ycb = new libycb.Ycb(dims),
                context, path;
            context = {
                'region': 'ir',
                'environment': 'preproduction',
                'lang': 'fr_FR'
            };
            path = ycb._getLookupPath(context, {useAllDimensions: true});

            A.areSame('preproduction/*/*/*/*/*/fr_FR/ir/*/*/*', path);
        },
示例#4
0
        'test _applySubstitutions': function() {
            var config, ycb;
            config = readFixtureFile('substitutions.json');
            ycb = new libycb.Ycb([]);
            ycb._applySubstitutions(config);

            A.isTrue(config.key0.key4 === 'The value of key0.key2 is value2');
            A.isTrue(config.key5.key4 === 'The value of key0.key2 is value2');
            A.isTrue(config.key6.key7.key8.key4 === 'The value of key0.key2 is value2');
            A.isTrue(config.key6.key9[2] === 'The value of key0.key2 is value2');
            A.isTrue(config['$$key0.key1$$'] === '--YCB-SUBSTITUTION-ERROR--');
            A.isTrue(config.key10.key11.key4 === 'The value of key0.key2 is value2');
            A.isTrue(config.key11[4] === 'The value of key0.key2 is value2');
            A.isTrue(config.key8.key4 === 'The value of key0.key2 is value2');
        },
示例#5
0
        'test _makeOrderedLookupList': function() {
            var dims = readFixtureFile('dimensions.json'),
                ycb = new libycb.Ycb(dims),
                context, list;
            context = {
                'region': 'ir',
                'environment': 'preproduction',
                'lang': 'fr_CA'
            };
            list = ycb._makeOrderedLookupList(context, {useAllDimensions: true});

            A.areSame('preproduction', list['environment'][0]);
            A.areSame('*', list['environment'][1]);
            A.areSame('fr_CA', list['lang'][0]);
            A.areSame('fr_FR', list['lang'][1]);
            A.areSame('fr', list['lang'][2]);
            A.areSame('*', list['lang'][3]);
            A.areSame('ir', list['region'][0]);
            A.areSame('gb', list['region'][1]);
            A.areSame('*', list['region'][2]);
        },
示例#6
0
 'walk settings': function() {
     var bundle, ycb;
     bundle = readFixtureFile('dimensions.json')
              .concat(readFixtureFile('simple-1.json'))
              .concat(readFixtureFile('simple-3.json'));
     ycb = new libycb.Ycb(bundle);
     var ctxs = {};
     ycb.walkSettings(function(settings, config) {
         ctxs[JSON.stringify(settings)] = true;
         return true;
     });
     A.areSame(9, Object.keys(ctxs).length);
     A.isTrue(ctxs['{}']);
     A.isTrue(ctxs['{"region":"ca"}']);
     A.isTrue(ctxs['{"region":"gb"}']);
     A.isTrue(ctxs['{"lang":"fr"}']);
     A.isTrue(ctxs['{"region":"fr"}']);
     A.isTrue(ctxs['{"flavor":"att"}']);
     A.isTrue(ctxs['{"region":"ca","flavor":"att"}']);
     A.isTrue(ctxs['{"region":"gb","flavor":"bt"}']);
     A.isTrue(ctxs['{"region":"fr","flavor":"bt"}']);
 }
示例#7
0
        'skip unused dimensions': function() {
            var bundle, ycb;
            bundle = readFixtureFile('dimensions.json')
                     .concat(readFixtureFile('simple-1.json'))
                     .concat(readFixtureFile('simple-3.json'));
            ycb = new libycb.Ycb(bundle);

            A.areSame(3, Object.keys(ycb.dimsUsed).length);
            A.isNotUndefined(ycb.dimsUsed.region);
            A.areSame(3, Object.keys(ycb.dimsUsed.region).length);
            A.isTrue(ycb.dimsUsed.region.ca);
            A.isTrue(ycb.dimsUsed.region.gb);
            A.isTrue(ycb.dimsUsed.region.fr);
            A.areSame(1, Object.keys(ycb.dimsUsed.lang).length);
            A.isTrue(ycb.dimsUsed.lang.fr);
            A.areSame(2, Object.keys(ycb.dimsUsed.flavor).length);
            A.isTrue(ycb.dimsUsed.flavor.att);
            A.isTrue(ycb.dimsUsed.flavor.bt);

            var context = {
                'region': 'ir',
                'environment': 'preproduction',
                'lang': 'fr_FR'
            };
            var paths = ycb._getLookupPaths(context, {});
            var expected = [
                '*/*/*/*/*/*/*/*/*/*/*',
                '*/*/*/*/*/*/*/gb/*/*/*',
                '*/*/*/*/*/*/*/ir/*/*/*',
                '*/*/*/*/*/*/fr/*/*/*/*',
                '*/*/*/*/*/*/fr/gb/*/*/*',
                '*/*/*/*/*/*/fr/ir/*/*/*',
                '*/*/*/*/*/*/fr_FR/*/*/*/*',
                '*/*/*/*/*/*/fr_FR/gb/*/*/*',
                '*/*/*/*/*/*/fr_FR/ir/*/*/*'
            ];
            AA.itemsAreEqual(expected, paths);
        },
示例#8
0
 'get dimensions': function() {
     var bundle, ycb;
     bundle = readFixtureFile('dimensions.json');
     ycb = new libycb.Ycb(Y.clone(bundle, true));
     cmp(bundle[0].dimensions, ycb.getDimensions());
 },