1: <?php
2: use Azalea\Selenium\App\ApplicationTestCase;
3: use Azalea\Selenium\App\Customers;
4: use Azalea\Selenium\App\Patients;
5: use Azalea\Selenium\App\Providers;
6: use Azalea\Selenium\App\Users;
7:
8: class ChartsListProviderAccessTest extends ApplicationTestCase
9: {
10: public function supportsCustomer($cus_id)
11: {
12:
13: return (Customers::isEhrCustomer($cus_id));
14: }
15:
16: 17: 18: 19: 20: 21:
22: public function testAdminWithAccessToAllProviders()
23: {
24: $app = $this->login(Users::RUTH_BELL, Users::PASSWORD);
25:
26:
27: $charts = $app->charts->navigate()->verifyAndWait();
28: $this->waitForAjax();
29:
30: 31: 32: 33:
34: $this->spinWait(function () use ($charts) {
35: $this->assertEquals(5, $charts->grid->count());
36: $charts->grid->assertCanSee("Berry Carter");
37: $charts->grid->assertCanSee("Lacey McClure");
38: $charts->grid->assertCanSee("Cordelia Wolff");
39: $charts->grid->assertCanSee("Roma Wilkinson");
40: return true;
41: });
42:
43:
44: $charts->search->searchFor("Rashawn Crist");
45: $this->waitForAjax();
46:
47: 48: 49: 50:
51: $this->spinWait(function () use ($charts) {
52: $charts->grid->first()->assertCanSee("Crist, Rashawn");
53: return true;
54: });
55:
56:
57: $this->resetChartFilters($app);
58:
59:
60: $charts->search->searchFor("Clement Bradtke");
61: $this->waitForAjax();
62:
63: 64: 65: 66:
67: $this->spinWait(function () use ($charts) {
68: $charts->grid->first()->assertCanSee("Bradtke, Clement");
69: return true;
70: });
71:
72:
73: $this->resetChartFilters($app);
74:
75:
76: $charts->search->searchFor("Pearline Gottlieb");
77: $this->waitForAjax();
78:
79: 80: 81: 82:
83: $this->spinWait(function () use ($charts) {
84: $charts->grid->first()->assertCanSee("Gottlieb, Pearline");
85: return true;
86: });
87:
88:
89: $this->resetChartFilters($app);
90:
91:
92: $charts->search->searchFor("Agnes Schimmel");
93: $this->waitForAjax();
94:
95: 96: 97: 98:
99: $this->spinWait(function () use ($charts) {
100: $charts->grid->first()->assertCanSee("Schimmel, Agnes");
101: return true;
102: });
103:
104: $this->assertNoErrorPopups();
105: }
106:
107: 108: 109: 110: 111: 112:
113: public function testUserWithAccessToOneProvider()
114: {
115: $app = $this->login(Users::THEO_FIFIELD, Users::PASSWORD);
116:
117:
118: $charts = $app->charts->navigate()->verifyAndWait();
119: $this->waitForAjax();
120:
121: 122: 123: 124: 125:
126: $this->spinWait(function () use ($charts) {
127: $this->assertEquals(1, $charts->grid->count());
128: $charts->grid->assertCanSee("Berry Carter");
129: $charts->grid->assertCanNotSee("Lacey McClure");
130: $charts->grid->assertCanNotSee("Cordelia Wolff");
131: $charts->grid->assertCanNotSee("Roma Wilkinson");
132: return true;
133: });
134:
135:
136: $charts->search->searchFor("Rashawn Crist");
137: $this->waitForAjax();
138:
139: 140: 141: 142:
143: $this->spinWait(function () use ($charts) {
144: $charts->grid->first()->assertCanSee("Crist, Rashawn");
145: return true;
146: });
147:
148:
149: $this->resetChartFilters($app);
150:
151:
152: $charts->search->searchFor("Clement Bradtke");
153: $this->waitForAjax();
154:
155: 156: 157: 158:
159: $this->spinWait(function () use ($charts) {
160: $this->assertEquals(0, $charts->grid->count());
161: return true;
162: });
163:
164:
165: $this->resetChartFilters($app);
166:
167:
168: $charts->search->searchFor("Pearline Gottlieb");
169: $this->waitForAjax();
170:
171: 172: 173: 174:
175: $this->spinWait(function () use ($charts) {
176: $this->assertEquals(0, $charts->grid->count());
177: return true;
178: });
179:
180:
181: $this->resetChartFilters($app);
182:
183:
184: $charts->search->searchFor("Agnes Schimmel");
185: $this->waitForAjax();
186:
187: 188: 189: 190:
191: $this->spinWait(function () use ($charts) {
192: $this->assertEquals(0, $charts->grid->count());
193: return true;
194: });
195:
196:
197: $this->resetChartFilters($app);
198:
199:
200: $charts->controls->byRenderingProvider(3567)->go();
201:
202: 203: 204: 205: 206:
207: $this->spinWait(function () use ($charts) {
208: $this->assertEquals(1, $charts->grid->count());
209: $charts->grid->assertCanSee("Berry Carter");
210: $charts->grid->assertCanNotSee("Lacey McClure");
211: $charts->grid->assertCanNotSee("Cordelia Wolff");
212: $charts->grid->assertCanNotSee("Roma Wilkinson");
213: return true;
214: });
215:
216: $this->assertNoErrorPopups();
217: }
218:
219: 220: 221: 222: 223: 224:
225: public function testUserWithAccessToMultipleProviders()
226: {
227: $app = $this->login(Users::KATHERINE_IZZO, Users::PASSWORD);
228:
229:
230: $charts = $app->charts->navigate()->verifyAndWait();
231: $this->waitForAjax();
232:
233: 234: 235: 236: 237:
238: $this->spinWait(function () use ($charts) {
239: $this->assertEquals(3, $charts->grid->count());
240: $charts->grid->assertCanNotSee("Berry Carter");
241: $charts->grid->assertCanNotSee("Lacey McClure");
242: $charts->grid->assertCanSee("Cordelia Wolff");
243: $charts->grid->assertCanSee("Roma Wilkinson");
244: return true;
245: });
246:
247:
248: $charts->search->searchFor("Rashawn Crist");
249: $this->waitForAjax();
250:
251: 252: 253: 254:
255: $this->spinWait(function () use ($charts) {
256: $charts->grid->first()->assertCanSee("Crist, Rashawn");
257: return true;
258: });
259:
260:
261: $this->resetChartFilters($app);
262:
263:
264: $charts->search->searchFor("Clement Bradtke");
265: $this->waitForAjax();
266:
267: 268: 269: 270:
271: $this->spinWait(function () use ($charts) {
272: $this->assertEquals(0, $charts->grid->count());
273: return true;
274: });
275:
276:
277: $this->resetChartFilters($app);
278:
279:
280: $charts->search->searchFor("Pearline Gottlieb");
281: $this->waitForAjax();
282:
283: 284: 285: 286:
287: $this->spinWait(function () use ($charts) {
288: $charts->grid->first()->assertCanSee("Gottlieb, Pearline");
289: return true;
290: });
291:
292:
293: $this->resetChartFilters($app);
294:
295:
296: $charts->search->searchFor("Agnes Schimmel");
297: $this->waitForAjax();
298:
299: 300: 301: 302:
303: $this->spinWait(function () use ($charts) {
304: $charts->grid->first()->assertCanSee("Schimmel, Agnes");
305: return true;
306: });
307:
308:
309: $this->resetChartFilters($app);
310:
311:
312: $charts->controls->byRenderingProvider(3568)->go();
313:
314: 315: 316: 317: 318:
319: $this->spinWait(function () use ($charts) {
320: $this->assertEquals(2, $charts->grid->count());
321: $charts->grid->assertCanNotSee("Berry Carter");
322: $charts->grid->assertCanNotSee("Lacey McClure");
323: $charts->grid->assertCanNotSee("Cordelia Wolff");
324: $charts->grid->assertCanSee("Roma Wilkinson");
325: return true;
326: });
327:
328:
329: $this->resetChartFilters($app);
330:
331:
332: $charts->controls->byRenderingProvider(3570)->go();
333:
334: 335: 336: 337: 338:
339: $this->spinWait(function () use ($charts) {
340: $this->assertEquals(1, $charts->grid->count());
341: $charts->grid->assertCanNotSee("Berry Carter");
342: $charts->grid->assertCanNotSee("Lacey McClure");
343: $charts->grid->assertCanSee("Cordelia Wolff");
344: $charts->grid->assertCanNotSee("Roma Wilkinson");
345: return true;
346: });
347:
348:
349: $this->assertNoErrorPopups();
350: }
351:
352: 353: 354:
355: protected function resetChartFilters($app)
356: {
357:
358: $app->charts->controls->reset();
359: $this->waitForHaze(false);
360: $this->spinWait(function() use ($app) {
361: return ($app->charts->grid->count() > 0);
362: });
363: }
364: }
365:
366: ?>