Overview

Namespaces

  • Azalea
    • Selenium
      • App
        • Charts
        • Components
        • Encounters
        • Home
        • Login
        • Main
        • Messages
        • Patients
        • Scheduler
      • Core
      • EHR
        • UI
          • Charts
          • Documents
          • Encounters
          • Home
          • Messaging
            • Folders
          • Patients
          • Payments
          • Precerts
          • Reports
          • Scheduler
          • Settings
            • General
              • Locations
              • Roles
              • Users
        • User
      • Login
        • UI
      • PHR
        • UI
        • User
      • Toolkit
        • Exception
        • Validation
    • Util
  • None
  • tests
    • integration
      • barebones
        • controllers
          • charts
          • patients
          • system
        • models
          • billing
          • encounters
          • examples
          • messaging
          • rcm
          • system
    • unit
      • barebones
        • lib
        • utilities
          • calculations

Classes

  • AddPatientTest
  • Azalea\Selenium\App\ApplicationTestCase
  • Azalea\Selenium\App\Charts\Chart
  • Azalea\Selenium\App\Charts\ChartAssessment
  • Azalea\Selenium\App\Charts\ChartDiagnosisCodes
  • Azalea\Selenium\App\Charts\ChartListControls
  • Azalea\Selenium\App\Charts\ChartObjective
  • Azalea\Selenium\App\Charts\ChartProcedureCodes
  • Azalea\Selenium\App\Charts\Charts
  • Azalea\Selenium\App\Charts\ChartSubjective
  • Azalea\Selenium\App\Components\CodeLookup
  • Azalea\Selenium\App\Components\CollectionGrid
  • Azalea\Selenium\App\Components\Popup
  • Azalea\Selenium\App\Customers
  • Azalea\Selenium\App\Encounters\Encounter
  • Azalea\Selenium\App\Encounters\EncounterDiagnosisCodes
  • Azalea\Selenium\App\Encounters\EncounterLedger
  • Azalea\Selenium\App\Encounters\EncounterProcedureCodes
  • Azalea\Selenium\App\Encounters\Encounters
  • Azalea\Selenium\App\Home\Home
  • Azalea\Selenium\App\Login\LoginPage
  • Azalea\Selenium\App\Main\MainSearch
  • Azalea\Selenium\App\Messages\Messages
  • Azalea\Selenium\App\Patients
  • Azalea\Selenium\App\Patients\Patient
  • Azalea\Selenium\App\Patients\PatientCharts
  • Azalea\Selenium\App\Patients\PatientEditDemographicsForm
  • Azalea\Selenium\App\Patients\PatientEncounters
  • Azalea\Selenium\App\Patients\PatientFaker
  • Azalea\Selenium\App\Patients\PatientList
  • Azalea\Selenium\App\Patients\PatientListFilters
  • Azalea\Selenium\App\Patients\Patients
  • Azalea\Selenium\App\Providers
  • Azalea\Selenium\App\Scheduler\AppointmentPopup
  • Azalea\Selenium\App\Scheduler\Scheduler
  • Azalea\Selenium\App\Users
  • Azalea\Selenium\Core\BaseTestCase
  • Azalea\Selenium\Core\Browser
  • Azalea\Selenium\Core\Page
  • Azalea\Selenium\Core\User
  • Azalea\Selenium\Core\View
  • Azalea\Selenium\Core\WebDriver
  • Azalea\Selenium\EHR\Application
  • Azalea\Selenium\EHR\EHR
  • Azalea\Selenium\EHR\EHRTestCase
  • Azalea\Selenium\EHR\EMR
  • Azalea\Selenium\EHR\PM
  • Azalea\Selenium\EHR\UI\Charts\ChartsList
  • Azalea\Selenium\EHR\UI\Charts\ChartsListRow
  • Azalea\Selenium\EHR\UI\Charts\ChartsListTab
  • Azalea\Selenium\EHR\UI\CheckboxGrid
  • Azalea\Selenium\EHR\UI\Documents\Documents
  • Azalea\Selenium\EHR\UI\Documents\DocumentsTab
  • Azalea\Selenium\EHR\UI\Encounters\Encounters
  • Azalea\Selenium\EHR\UI\Encounters\EncountersTab
  • Azalea\Selenium\EHR\UI\Grid
  • Azalea\Selenium\EHR\UI\GridRow
  • Azalea\Selenium\EHR\UI\Heading
  • Azalea\Selenium\EHR\UI\Home\Home
  • Azalea\Selenium\EHR\UI\Home\OfficeOverview
  • Azalea\Selenium\EHR\UI\LockScreen
  • Azalea\Selenium\EHR\UI\MainMenu
  • Azalea\Selenium\EHR\UI\MainSearch
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingAllMail
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingInbox
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingSentMail
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingStarred
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingTrashed
  • Azalea\Selenium\EHR\UI\Messaging\Messaging
  • Azalea\Selenium\EHR\UI\Messaging\MessagingCompose
  • Azalea\Selenium\EHR\UI\Messaging\MessagingFolder
  • Azalea\Selenium\EHR\UI\Messaging\MessagingMenu
  • Azalea\Selenium\EHR\UI\Messaging\MessagingReply
  • Azalea\Selenium\EHR\UI\Messaging\MessagingTab
  • Azalea\Selenium\EHR\UI\Messaging\MessagingViewMessage
  • Azalea\Selenium\EHR\UI\Module
  • Azalea\Selenium\EHR\UI\Notifications
  • Azalea\Selenium\EHR\UI\Patients\ChartsListRow
  • Azalea\Selenium\EHR\UI\Patients\ChartsTab
  • Azalea\Selenium\EHR\UI\Patients\PatientAllergies
  • Azalea\Selenium\EHR\UI\Patients\PatientAllergyEditPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientAllergySearchPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientAppointments
  • Azalea\Selenium\EHR\UI\Patients\PatientAssembly
  • Azalea\Selenium\EHR\UI\Patients\PatientCharts
  • Azalea\Selenium\EHR\UI\Patients\PatientChartsList
  • Azalea\Selenium\EHR\UI\Patients\PatientComments
  • Azalea\Selenium\EHR\UI\Patients\PatientDashboard
  • Azalea\Selenium\EHR\UI\Patients\PatientDemographics
  • Azalea\Selenium\EHR\UI\Patients\PatientDemographicsPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientDocuments
  • Azalea\Selenium\EHR\UI\Patients\PatientDocumentsList
  • Azalea\Selenium\EHR\UI\Patients\PatientEncounters
  • Azalea\Selenium\EHR\UI\Patients\PatientEncountersAddPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientHandouts
  • Azalea\Selenium\EHR\UI\Patients\PatientInsurance
  • Azalea\Selenium\EHR\UI\Patients\PatientLabOrders
  • Azalea\Selenium\EHR\UI\Patients\PatientLabOrdersAddView
  • Azalea\Selenium\EHR\UI\Patients\PatientMedications
  • Azalea\Selenium\EHR\UI\Patients\PatientPortal
  • Azalea\Selenium\EHR\UI\Patients\PatientRecalls
  • Azalea\Selenium\EHR\UI\Patients\Patients
  • Azalea\Selenium\EHR\UI\Patients\PatientSearchPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientSection
  • Azalea\Selenium\EHR\UI\Patients\PatientSidebar
  • Azalea\Selenium\EHR\UI\Patients\PatientsList
  • Azalea\Selenium\EHR\UI\Patients\PatientsListRow
  • Azalea\Selenium\EHR\UI\Patients\PatientsListTab
  • Azalea\Selenium\EHR\UI\Patients\PatientsTab
  • Azalea\Selenium\EHR\UI\Patients\PatientTab
  • Azalea\Selenium\EHR\UI\Patients\PatientTasks
  • Azalea\Selenium\EHR\UI\Patients\PatientVitals
  • Azalea\Selenium\EHR\UI\Patients\PatientVitalsAddPopup
  • Azalea\Selenium\EHR\UI\Payments\EDIRemitsTab
  • Azalea\Selenium\EHR\UI\Payments\Payments
  • Azalea\Selenium\EHR\UI\Payments\PaymentsTab
  • Azalea\Selenium\EHR\UI\Payments\UnappliedPaymentsTab
  • Azalea\Selenium\EHR\UI\Popup
  • Azalea\Selenium\EHR\UI\PopupConfirm
  • Azalea\Selenium\EHR\UI\PopupError
  • Azalea\Selenium\EHR\UI\Precerts\Precerts
  • Azalea\Selenium\EHR\UI\Precerts\PrecertsTab
  • Azalea\Selenium\EHR\UI\Reports\AuditLogTab
  • Azalea\Selenium\EHR\UI\Reports\ClinicalQualityMeasuresTab
  • Azalea\Selenium\EHR\UI\Reports\ClinicalQualityMeasuresValueSetsTab
  • Azalea\Selenium\EHR\UI\Reports\MeaningfulUseTab
  • Azalea\Selenium\EHR\UI\Reports\PatientStatementsTab
  • Azalea\Selenium\EHR\UI\Reports\RecordsTab
  • Azalea\Selenium\EHR\UI\Reports\Reports
  • Azalea\Selenium\EHR\UI\Reports\ReportsQueueTab
  • Azalea\Selenium\EHR\UI\Reports\ReportsTab
  • Azalea\Selenium\EHR\UI\Reports\SystemStatisticsTab
  • Azalea\Selenium\EHR\UI\Scheduler\AppointmentsRequestsTab
  • Azalea\Selenium\EHR\UI\Scheduler\AppointmentsTab
  • Azalea\Selenium\EHR\UI\Scheduler\RecallsTab
  • Azalea\Selenium\EHR\UI\Scheduler\Scheduler
  • Azalea\Selenium\EHR\UI\Scheduler\SchedulerTab
  • Azalea\Selenium\EHR\UI\SelectDropdown
  • Azalea\Selenium\EHR\UI\Settings\BillingTab
  • Azalea\Selenium\EHR\UI\Settings\General\GroupsSection
  • Azalea\Selenium\EHR\UI\Settings\General\HandoutsSection
  • Azalea\Selenium\EHR\UI\Settings\General\InsurancesSection
  • Azalea\Selenium\EHR\UI\Settings\General\Locations\LocationRow
  • Azalea\Selenium\EHR\UI\Settings\General\Locations\LocationsList
  • Azalea\Selenium\EHR\UI\Settings\General\LocationsSection
  • Azalea\Selenium\EHR\UI\Settings\General\ProvidersSection
  • Azalea\Selenium\EHR\UI\Settings\General\Roles\RoleCreatePopup
  • Azalea\Selenium\EHR\UI\Settings\General\Roles\RoleRow
  • Azalea\Selenium\EHR\UI\Settings\General\Roles\RolesList
  • Azalea\Selenium\EHR\UI\Settings\General\RolesSection
  • Azalea\Selenium\EHR\UI\Settings\General\Users\UserDetails
  • Azalea\Selenium\EHR\UI\Settings\General\Users\UserRow
  • Azalea\Selenium\EHR\UI\Settings\General\Users\UsersList
  • Azalea\Selenium\EHR\UI\Settings\General\UsersSection
  • Azalea\Selenium\EHR\UI\Settings\GeneralTab
  • Azalea\Selenium\EHR\UI\Settings\InventoryTab
  • Azalea\Selenium\EHR\UI\Settings\MedicalTab
  • Azalea\Selenium\EHR\UI\Settings\PatientTab
  • Azalea\Selenium\EHR\UI\Settings\SchedulerTab
  • Azalea\Selenium\EHR\UI\Settings\Settings
  • Azalea\Selenium\EHR\UI\TabContainer
  • Azalea\Selenium\EHR\UI\TabPanel
  • Azalea\Selenium\EHR\UI\UserAccountMenu
  • Azalea\Selenium\EHR\User\EHRAdminTestingUser
  • Azalea\Selenium\EHR\User\EMRAdminTestingUser
  • Azalea\Selenium\EHR\User\PMAdminTestingUser
  • Azalea\Selenium\Login\LoginPage
  • Azalea\Selenium\Login\LoginTestCase
  • Azalea\Selenium\Login\ResetPasswordPage
  • Azalea\Selenium\Login\UI\LoginForm
  • Azalea\Selenium\Login\UI\ResetPasswordForm
  • Azalea\Selenium\PHR\Application
  • Azalea\Selenium\PHR\PHR
  • Azalea\Selenium\PHR\PHRTestCase
  • Azalea\Selenium\PHR\UI\PopupError
  • Azalea\Selenium\PHR\User\PHRTestingUser
  • Azalea\Selenium\Toolkit\Dom
  • Azalea\Selenium\Toolkit\NestedHashMap
  • Azalea\Selenium\Toolkit\ResourceLoader
  • Azalea\Selenium\Toolkit\SauceLabsTestCase
  • Azalea\Selenium\Toolkit\SeleniumTestCase
  • Azalea\Selenium\Toolkit\TestCase
  • Azalea\Selenium\Toolkit\Validation\ElementExists
  • Azalea\Selenium\Toolkit\Validation\ElementHasText
  • Azalea\Selenium\Toolkit\Validation\ElementVisible
  • Azalea\Selenium\Toolkit\Validation\PageTitle
  • Azalea\Selenium\Toolkit\Validation\ValidationRule
  • Azalea\Selenium\Toolkit\Validation\ViewExists
  • Azalea\Selenium\Toolkit\Validation\WebDriverValidator
  • Azalea\Selenium\Toolkit\View
  • Azalea\Util\Config
  • Azalea\Util\Debug
  • Azalea_Sniffs_WhiteSpace_ScopeClosingBraceSniff
  • BaseModelTestCase
  • ChartAssessmentTest
  • ChartCustomFieldBehaviorsTest
  • ChartDiagnosisTest
  • ChartEncounterDiagnosisTest
  • ChartEncounterProceduresTest
  • ChartInventoryTest
  • ChartObjectiveTest
  • ChartProblemHistoryTest
  • ChartProceduresTest
  • ChartProviderAccessTest
  • ChartSigningTest
  • ChartsListProviderAccessTest
  • ChartSmokingStatusTest
  • ChartSubjectiveTest
  • ConfigTest
  • EncounterClaimsTest
  • EncounterDemographicsTest
  • EncounterDiagnosisTest
  • EncounterGuarantorTest
  • EncounterLedgerTest
  • EncounterProceduresTest
  • ExampleTestCase
  • MessagesLabelsTest
  • PageTest
  • PatentsListTest
  • PathManagerTest
  • PatientAccountSummaryTest
  • PatientBillingActionsTest
  • PatientCommentsTest
  • PatientDashboardAlertsTest
  • PatientDashboardLinkedPatientsTest
  • PatientDemographicsEditTest
  • PatientDocumentsTest
  • PatientPopupCommentsTest
  • PatientProviderAccessTest
  • PatientsListProviderAccessTest
  • PermissionsTest
  • PopupTest
  • SchedulerBlocksTest
  • SchedulerInsuranceBlocksTest
  • SimpePage
  • SimpleView
  • SimpleViewWithArgs
  • SimpleViewWithNoHash
  • TestCase
  • tests\integration\barebones\BarebonesConstants
  • tests\integration\barebones\BarebonesTestCase
  • tests\integration\barebones\controllers\charts\ChartsControllerTest
  • tests\integration\barebones\controllers\patients\PatientsPopupAlertsControllerTest
  • tests\integration\barebones\controllers\system\ClientsControllerTest
  • tests\integration\barebones\models\billing\ClientsFeeSchedulesMapModelTest
  • tests\integration\barebones\models\encounters\AppointmentModelTest
  • tests\integration\barebones\models\encounters\CollectionTest
  • tests\integration\barebones\models\encounters\ConcurrentCollectionTest
  • tests\integration\barebones\models\encounters\EncounterModelTest
  • tests\integration\barebones\models\encounters\EncountersIncompleteReasonModelTest
  • tests\integration\barebones\models\encounters\ModelQueryBuilderTest
  • tests\integration\barebones\models\examples\ExampleModelBasicsTest
  • tests\integration\barebones\models\examples\ExamplesGenericControllerTest
  • tests\integration\barebones\models\messaging\MessageModelTest
  • tests\integration\barebones\models\rcm\RCMStatsGeneralControllerTests
  • tests\integration\barebones\models\system\ClientModelTest
  • tests\unit\barebones\lib\BarebonesTestCase
  • tests\unit\barebones\utilities\ArraysTest
  • tests\unit\barebones\utilities\calculations\PovertyLineTest
  • tests\unit\barebones\utilities\MathTest
  • UrlManagerTest
  • VariantRulesTest
  • VariantsManagerTest
  • ViewTest
  • WebDriverMock

Exceptions

  • Azalea\Selenium\Toolkit\Exception\ElementNotFoundException
  • Azalea\Selenium\Toolkit\Exception\InvalidPageException
  • Azalea\Selenium\Toolkit\Exception\TimeoutException
  • Overview
  • Namespace
  • Class
  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:         // Azalea EHR customer only
 13:         return (Customers::isEhrCustomer($cus_id));
 14:     }
 15: 
 16:     /**
 17:      * Summary:
 18:      * An administrator user with all chart provider access can see all
 19:      * charts in the patient list and search for charts belonging to
 20:      * each provider.
 21:      */
 22:     public function testAdminWithAccessToAllProviders()
 23:     {
 24:         $app = $this->login(Users::RUTH_BELL, Users::PASSWORD);
 25: 
 26:         // Go the to the charts list
 27:         $charts = $app->charts->navigate()->verifyAndWait();
 28:         $this->waitForAjax();
 29: 
 30:         /**
 31:          * Expected results:
 32:          *  a. There are 5 charts in the list
 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:         // Search for Rashawn Crist
 44:         $charts->search->searchFor("Rashawn Crist");
 45:         $this->waitForAjax();
 46: 
 47:         /**
 48:          * Expected results:
 49:          *  a. Patient appears in the list.
 50:          */
 51:         $this->spinWait(function () use ($charts) {
 52:             $charts->grid->first()->assertCanSee("Crist, Rashawn");
 53:             return true;
 54:         });
 55: 
 56:         // Reset filters
 57:         $this->resetChartFilters($app);
 58: 
 59:         // Search for Clement Bradtke
 60:         $charts->search->searchFor("Clement Bradtke");
 61:         $this->waitForAjax();
 62: 
 63:         /**
 64:          * Expected results:
 65:          *  a. Patient appears in the list.
 66:          */
 67:         $this->spinWait(function () use ($charts) {
 68:             $charts->grid->first()->assertCanSee("Bradtke, Clement");
 69:             return true;
 70:         });
 71: 
 72:         // Reset filters
 73:         $this->resetChartFilters($app);
 74: 
 75:         // Search for Pearline Gottlieb
 76:         $charts->search->searchFor("Pearline Gottlieb");
 77:         $this->waitForAjax();
 78: 
 79:         /**
 80:          * Expected results:
 81:          *  a. Patient appears in the list.
 82:          */
 83:         $this->spinWait(function () use ($charts) {
 84:             $charts->grid->first()->assertCanSee("Gottlieb, Pearline");
 85:             return true;
 86:         });
 87: 
 88:         // Reset filters
 89:         $this->resetChartFilters($app);
 90: 
 91:         // Search for Agnes Schimmel
 92:         $charts->search->searchFor("Agnes Schimmel");
 93:         $this->waitForAjax();
 94: 
 95:         /**
 96:          * Expected results:
 97:          *  a. Patient appears in the list.
 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:      * Summary:
109:      * A user with chart provider access to a single provider can see only
110:      * those charts in the charts list that have that rendering provider
111:      * and can only search for those charts.
112:      */
113:     public function testUserWithAccessToOneProvider()
114:     {
115:         $app = $this->login(Users::THEO_FIFIELD, Users::PASSWORD);
116: 
117:         // Go the to the charts list
118:         $charts = $app->charts->navigate()->verifyAndWait();
119:         $this->waitForAjax();
120: 
121:         /**
122:          * Expected results:
123:          *  a. There is 1 chart in the list with rendering provider
124:          *     Berry Carter.
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:         // Search for Rashawn Crist
136:         $charts->search->searchFor("Rashawn Crist");
137:         $this->waitForAjax();
138: 
139:         /**
140:          * Expected results:
141:          *  a. Patient appears in the list.
142:          */
143:         $this->spinWait(function () use ($charts) {
144:             $charts->grid->first()->assertCanSee("Crist, Rashawn");
145:             return true;
146:         });
147: 
148:         // Reset filters
149:         $this->resetChartFilters($app);
150: 
151:         // Search for Clement Bradtke
152:         $charts->search->searchFor("Clement Bradtke");
153:         $this->waitForAjax();
154: 
155:         /**
156:          * Expected results:
157:          *  a. Chart list is empty.
158:          */
159:         $this->spinWait(function () use ($charts) {
160:             $this->assertEquals(0, $charts->grid->count());
161:             return true;
162:         });
163: 
164:         // Reset filters
165:         $this->resetChartFilters($app);
166: 
167:         // Search for Pearline Gottlieb
168:         $charts->search->searchFor("Pearline Gottlieb");
169:         $this->waitForAjax();
170: 
171:         /**
172:          * Expected results:
173:          *  a. Chart list is empty.
174:          */
175:         $this->spinWait(function () use ($charts) {
176:             $this->assertEquals(0, $charts->grid->count());
177:             return true;
178:         });
179: 
180:         // Reset filters
181:         $this->resetChartFilters($app);
182: 
183:         // Search for Agnes Schimmel
184:         $charts->search->searchFor("Agnes Schimmel");
185:         $this->waitForAjax();
186: 
187:         /**
188:          * Expected results:
189:          *  a. Chart list is empty.
190:          */
191:         $this->spinWait(function () use ($charts) {
192:             $this->assertEquals(0, $charts->grid->count());
193:             return true;
194:         });
195: 
196:         // Reset filters
197:         $this->resetChartFilters($app);
198: 
199:         // Filter by Provider Berry Carter
200:         $charts->controls->byRenderingProvider(3567)->go();
201: 
202:         /**
203:          * Expected results:
204:          *  a. Chart list shows 1 chart with Rendering Provider
205:          *     Berry Carter.
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:      * Summary:
221:      * A user with chart provider access to multiple providers can see only
222:      * those charts in the charts list that have that rendering provider
223:      * and can only search for those charts.
224:      */
225:     public function testUserWithAccessToMultipleProviders()
226:     {
227:         $app = $this->login(Users::KATHERINE_IZZO, Users::PASSWORD);
228: 
229:         // Go the to the charts list
230:         $charts = $app->charts->navigate()->verifyAndWait();
231:         $this->waitForAjax();
232: 
233:         /**
234:          * Expected results:
235:          *  a. There are 3 charts in the list with rendering providers
236:          *     Cordelia Wolff and Roma Wilkinson.
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:         // Search for Rashawn Crist
248:         $charts->search->searchFor("Rashawn Crist");
249:         $this->waitForAjax();
250: 
251:         /**
252:          * Expected results:
253:          *  a. Patient appears in the list.
254:          */
255:         $this->spinWait(function () use ($charts) {
256:             $charts->grid->first()->assertCanSee("Crist, Rashawn");
257:             return true;
258:         });
259: 
260:         // Reset filters
261:         $this->resetChartFilters($app);
262: 
263:         // Search for Clement Bradtke
264:         $charts->search->searchFor("Clement Bradtke");
265:         $this->waitForAjax();
266: 
267:         /**
268:          * Expected results:
269:          *  a. Chart list is empty.
270:          */
271:         $this->spinWait(function () use ($charts) {
272:             $this->assertEquals(0, $charts->grid->count());
273:             return true;
274:         });
275: 
276:         // Reset filters
277:         $this->resetChartFilters($app);
278: 
279:         // Search for Pearline Gottlieb
280:         $charts->search->searchFor("Pearline Gottlieb");
281:         $this->waitForAjax();
282: 
283:         /**
284:          * Expected results:
285:          *  a. Patient appears in the list.
286:          */
287:         $this->spinWait(function () use ($charts) {
288:             $charts->grid->first()->assertCanSee("Gottlieb, Pearline");
289:             return true;
290:         });
291: 
292:         // Reset filters
293:         $this->resetChartFilters($app);
294: 
295:         // Search for Agnes Schimmel
296:         $charts->search->searchFor("Agnes Schimmel");
297:         $this->waitForAjax();
298: 
299:         /**
300:          * Expected results:
301:          *  a. Patient appears in the list.
302:          */
303:         $this->spinWait(function () use ($charts) {
304:             $charts->grid->first()->assertCanSee("Schimmel, Agnes");
305:             return true;
306:         });
307: 
308:         // Reset filters
309:         $this->resetChartFilters($app);
310: 
311:         // Filter by Provider Roma Wilkinson
312:         $charts->controls->byRenderingProvider(3568)->go();
313: 
314:         /**
315:          * Expected results:
316:          *  a. Patient list shows 2 charts with Rendering Provider
317:          *     Roma Wilkinson.
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:         // Reset filters
329:         $this->resetChartFilters($app);
330: 
331:         // Filter by Provider Cordelia Wolff
332:         $charts->controls->byRenderingProvider(3570)->go();
333: 
334:         /**
335:          * Expected results:
336:          *  a. Patient list shows 1 chart with Rendering Provider
337:          *     Cordelia Wolff.
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:      * Resets the chart list filter.
354:      */
355:     protected function resetChartFilters($app)
356:     {
357:         // Reset filters
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: ?>
API documentation generated by ApiGen