Merge pull request #4865 from eileenmcnaughton/my-first-factory
[civicrm-core.git] / tests / qunit / profile-editor / test.js
CommitLineData
6a488035
TO
1module('parseTypeList');
2
3var explodeCases = [
4 {group_type: '', expected: {coreTypes: {}, subTypes: {}}},
5 {group_type: 'Individual', expected: {coreTypes: {'Individual': true}, subTypes: {}}},
6 {group_type: 'Activity,Contact', expected: {coreTypes: {'Activity':true, 'Contact': true}, subTypes: {}}},
7 {group_type: 'Individual,Activity,Student\0ActivityType:2:28', expected: {coreTypes: {'Individual':true, 'Activity': true, 'Student': true}, subTypes: {"ActivityType":{"2": true, "28": true}}}},
8 {group_type: 'Individual,Activity,Student;;ActivityType:2:28', expected: {coreTypes: {'Individual':true, 'Activity': true, 'Student': true}, subTypes: {"ActivityType":{"2": true, "28": true}}}},
9 {group_type: ['Individual,Activity,Student','ActivityType:2:28'], expected: {coreTypes: {'Individual':true, 'Activity': true, 'Student': true}, subTypes: {"ActivityType":{"2": true, "28": true}}}}
10];
11
12_.each(explodeCases, function(explodeCase, explodeCaseIndex) {
13 test("#" + explodeCaseIndex + ": With group_type=" + explodeCase.group_type, function() {
14 deepEqual(CRM.UF.parseTypeList(explodeCase.group_type), explodeCase.expected);
15 });
16});
17
18module('UFGroupModel.checkGroupType');
19
20/**
21 * For a description of group_type, see CRM_Core_BAO_UFGroup::updateGroupTypes
22 */
23
24var cases = [
25 {group_type: null, validTypes: 'Individual,Contact,Activity', expected: true},
26 {group_type: '', validTypes: 'Individual,Contact,Activity', expected: true},
27 {group_type: 'Individual,Event', validTypes: 'Individual, Contact,Activity', expected: false},
28 {group_type: 'Individual,Event', validTypes: 'Individual', expected: false},
29 {group_type: 'Individual,Event', validTypes: 'Event,Individual', expected: true},
30 {group_type: 'Individual', validTypes: 'Individual,Contact,Activity', expected: true},
31 {group_type: 'Activity,Contact', validTypes: 'Individual,Contact,Activity', expected: true},
32 {group_type: 'Activity,Contact', validTypes: 'Individual,Contact,Activity\0ActivityType:28', expected: true},
33 {group_type: 'Individual,Activity\0ActivityType:2', validTypes: 'Individual,Contact,Activity', expected: false},
34 {group_type: 'Individual,Activity\0ActivityType:2', validTypes: 'Individual,Contact,Activity\0ActivityType:28', expected: false},
35 {group_type: 'Individual,Activity\0ActivityType:28', validTypes: 'Individual,Contact,Activity', expected: false},
36 {group_type: 'Individual,Activity\0ActivityType:28', validTypes: 'Individual,Contact,Activity\0ActivityType:28', expected: true},
37 {group_type: 'Individual,Activity\0ActivityType:2:28', validTypes: 'Individual,Contact,Activity', expected: false},
38 {group_type: 'Individual,Activity\0ActivityType:2:28', validTypes: 'Individual,Contact,Activity\0ActivityType:28', expected: true},
39 {group_type: 'Individual,Activity,Student\0ActivityType:28', validTypes: 'Individual,Contact,Activity\0ActivityType:28', expected: false},
40 {group_type: 'Individual,Activity,Student\0ActivityType:28', validTypes: 'Individual,Student,Contact,Activity\0ActivityType:28', expected: true}
41];
42
43_.each(cases, function(caseDetails, caseIndex) {
2241036a 44 test("#" + caseIndex + ": With group_type=" + caseDetails.group_type, function() {
6a488035
TO
45 var ufGroupModel = new CRM.UF.UFGroupModel({
46 group_type: caseDetails.group_type
47 });
48 equal(ufGroupModel.checkGroupType(caseDetails.validTypes), caseDetails.expected);
49 });
50});