1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | var CodeGradX = require('codegradxlib');
|
7 | var Agent = require('../codegradxagent.js');
|
8 | var vmauthor = require('./vmauthor-data.js');
|
9 | var vmauthData = require('./vmauth-data.json');
|
10 |
|
11 | describe("CodeGradXagent authentication", function () {
|
12 |
|
13 | function initializer (agent) {
|
14 |
|
15 | agent.state = new CodeGradX.State(vmauthor.initialize);
|
16 | return agent;
|
17 | }
|
18 |
|
19 | it("should be loaded", function () {
|
20 | expect(Agent).toBeDefined();
|
21 | var agent = new CodeGradX.Agent(initializer);
|
22 | expect(agent).toBeDefined();
|
23 | });
|
24 |
|
25 | function make_faildone (done) {
|
26 | return function faildone (reason) {
|
27 |
|
28 |
|
29 | fail(reason);
|
30 | done();
|
31 | };
|
32 | }
|
33 |
|
34 | it("cannot read absent credentials", function (done) {
|
35 | agent = new CodeGradX.Agent(initializer);
|
36 | var faildone = make_faildone(done);
|
37 | agent.process([
|
38 | "--credentials", "spec/absentCredentials.json"
|
39 | ]).then(faildone, function (reason) {
|
40 | expect(agent.credentials).not.toBeDefined();
|
41 | done();
|
42 | });
|
43 | });
|
44 |
|
45 | var safecookie1;
|
46 |
|
47 | it("with user+password", function (done) {
|
48 | agent = new CodeGradX.Agent(initializer);
|
49 | var faildone = make_faildone(done);
|
50 | agent.process([
|
51 | "--user", vmauthData.login,
|
52 | "--password", vmauthData.password
|
53 | ]).then(function (user) {
|
54 | expect(user).toBeDefined();
|
55 | expect(user.email).toBe('nobody@example.com');
|
56 | safecookie1 = agent.state.currentCookie;
|
57 | done();
|
58 | }, faildone);
|
59 | }, 10*1000);
|
60 |
|
61 | it("with previous cookie", function (done) {
|
62 | agent = CodeGradX.getCurrentAgent();
|
63 | var faildone = make_faildone(done);
|
64 | agent.process([
|
65 | ]).then(function (user) {
|
66 | expect(user).toBeDefined();
|
67 | expect(user.email).toBe('nobody@example.com');
|
68 | done();
|
69 | }, faildone);
|
70 | }, 10*1000);
|
71 |
|
72 | it("update credentials with user+password", function (done) {
|
73 | agent = new CodeGradX.Agent(initializer);
|
74 | var faildone = make_faildone(done);
|
75 | agent.process([
|
76 | "--user", vmauthData.login,
|
77 | "--password", vmauthData.password,
|
78 | "--update-credentials"
|
79 | ]).then(function (user) {
|
80 | expect(user).toBeDefined();
|
81 | CodeGradX.readFileContent(agent.credentialsFile).then(
|
82 | function (content) {
|
83 | var json = JSON.parse(content);
|
84 |
|
85 | expect(json.cookie).toMatch(/^u=U.{30}/);
|
86 | done();
|
87 | }, faildone);
|
88 | }, faildone);
|
89 | }, 10*1000);
|
90 |
|
91 | it("with user but wrong password", function (done) {
|
92 | agent = new CodeGradX.Agent(initializer);
|
93 | var faildone = make_faildone(done);
|
94 | agent.state.log.size = 100;
|
95 | agent.process([
|
96 | "--user", vmauthData.login,
|
97 | "--password", '123456WrongPassword'
|
98 | ]).then(faildone, function (reason) {
|
99 |
|
100 | expect(reason).toBeDefined();
|
101 | done();
|
102 | });
|
103 | }, 10*1000);
|
104 |
|
105 | it("with credentials with cookie", function (done) {
|
106 | agent = new CodeGradX.Agent(initializer);
|
107 | var faildone = make_faildone(done);
|
108 | agent.process([
|
109 | "--credentials", agent.credentialsFile
|
110 | ]).then(function (user) {
|
111 | expect(user).toBeDefined();
|
112 | done();
|
113 | }, faildone);
|
114 | }, 10*1000);
|
115 |
|
116 | it("with credentials with wrong cookie", function (done) {
|
117 | agent = new CodeGradX.Agent(initializer);
|
118 | var faildone = make_faildone(done);
|
119 | CodeGradX.writeFileContent(
|
120 | agent.credentialsFile,
|
121 | '{"cookie": ["u=U1234"]}').then(
|
122 | function () {
|
123 | agent.process([
|
124 | "--credentials", agent.credentialsFile
|
125 | ]).then(function (user) {
|
126 | console.log(user);
|
127 | faildone();
|
128 | }, function (reason) {
|
129 | expect(reason).toBeDefined();
|
130 | done();
|
131 | });
|
132 | }, faildone);
|
133 | }, 10*1000);
|
134 |
|
135 | it("with credentials without cookie", function (done) {
|
136 | agent = new CodeGradX.Agent(initializer);
|
137 | var faildone = make_faildone(done);
|
138 | CodeGradX.writeFileContent(
|
139 | agent.credentialsFile,
|
140 | JSON.stringify({
|
141 | user: vmauthData.login,
|
142 | password: vmauthData.password
|
143 | })).then(function () {
|
144 | agent.process([
|
145 | "--credentials", agent.credentialsFile
|
146 | ]).then(function (user) {
|
147 | expect(user).toBeDefined();
|
148 | done();
|
149 | }, faildone);
|
150 | }, faildone);
|
151 | }, 10*1000);
|
152 |
|
153 | it("cannot authenticate with wrong credentials", function (done) {
|
154 | agent = new CodeGradX.Agent(initializer);
|
155 |
|
156 | var faildone = make_faildone(done);
|
157 | CodeGradX.writeFileContent(
|
158 | agent.credentialsFile,
|
159 | '{"user": "nobody:0", "password": "totallyWrong"}').then(
|
160 | function () {
|
161 | agent.process([
|
162 | "--credentials", agent.credentialsFile
|
163 | ]).then(function (user) {
|
164 | console.log(user);
|
165 | faildone();
|
166 | }, function (reason) {
|
167 | expect(reason).toBeDefined();
|
168 | done();
|
169 | });
|
170 | }, faildone);
|
171 | }, 10*1000);
|
172 |
|
173 | });
|