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\Users;
  6: 
  7: class ChartSubjectiveTest extends ApplicationTestCase
  8: {
  9:     public function supportsCustomer($cus_id)
 10:     {
 11:         // Azalea EHR, Azalea EMR customers only
 12:         return (Customers::isEhrCustomer($cus_id) || Customers::isEmrCustomer($cus_id));
 13:     }
 14: 
 15:     /**
 16:      * Summary:
 17:      * Subjective HPI can be Edited, Cancelled, and Saved.
 18:      */
 19:     public function testCanEditHPI()
 20:     {
 21:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
 22: 
 23:         // Open Patient Record for Camila C. Fisher (QAA74) > Charts section.
 24:         $chartView = $app->patients->get(Patients::CAMILA_FISHER_ID)->charts->navigate()->addChart();
 25: 
 26:         // Click on the HPI field. In the HPI field, type "This is some text."
 27:         $chartView->subjective->editHPI();
 28:         $this->keys("This is some text.");
 29: 
 30:         $chartView->subjective->hpi->assertCanSee("This is some text.");
 31: 
 32:         // Click the Cancel button for the HPI field
 33:         $chartView->subjective->cancelHPI();
 34: 
 35:         /**
 36:          * Expected outcome:
 37:          * a. The HPI field is cleared
 38:          */
 39:         $this->spinWait(function () use ($chartView) {
 40:             $chartView->subjective->hpi->assertCanNotSee("This is some text.");
 41:             return true;
 42:         });
 43: 
 44:         $this->wait(1);
 45: 
 46:         // Click on the HPI field. In the HPI field, type "This is some text."
 47:         $chartView->subjective->editHPI();
 48:         $this->keys("This is some more text.");
 49: 
 50:         $chartView->subjective->hpi->assertCanSee("This is some more text.");
 51: 
 52:         // Click the Save button for the HPI field
 53:         $chartView->subjective->saveHPI();
 54: 
 55:         /**
 56:          * Expected outcome:
 57:          * a. The HPI field has the text "This is some more text."
 58:          */
 59:         $this->spinWait(function () use ($chartView) {
 60:             $chartView->subjective->hpi->assertCanSee("This is some more text.");
 61:             return true;
 62:         });
 63: 
 64:         // Save the Chart
 65:         $chartView->save();
 66: 
 67:         /**
 68:          * Expected outcome:
 69:          * a. The HPI field has the text "This is some more text."
 70:          */
 71:         $this->spinWait(function () use ($chartView) {
 72:             $chartView->subjective->hpi->assertCanSee("This is some more text.");
 73:             return true;
 74:         });
 75: 
 76:         // cancel the chart to clean up
 77:         $chartView->cancel();
 78: 
 79:         $this->assertNoErrorPopups();
 80:     }
 81: 
 82:     /**
 83:      * Summary:
 84:      * Image annotations can be added to the Subjective section of the chart and
 85:      * subsequently edited and removed.
 86:      */
 87:     public function testAddEditRemoveImageAnnotation()
 88:     {
 89:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
 90: 
 91:         // Open Patient Record for Camila C. Fisher (QAA74) > Charts section.
 92:         $chartView = $app->patients->get(Patients::CAMILA_FISHER_ID)->charts->navigate()->addChart();
 93: 
 94:         // Press the + Image Annotation button in the Subjective section
 95:         $chartView->subjective->addImageAnnotation();
 96: 
 97:         $chartView->popups->images->verifyAndWait();
 98:         $chartView->popups->images->grid->waitForRowAt(0);
 99: 
100:         // Search for "Body Diagrams"
101:         $chartView->popups->images->type("autoselect_search", "Body Diagrams");
102:         $this->spinWait(function () use ($chartView) {
103:             return $chartView->popups->images->grid->see("Body Diagrams");
104:         });
105: 
106:         // Click on the "Body Diagrams" row
107:         $chartView->popups->images->grid->waitForRowAt(0)->click();
108: 
109:         /**
110:          * Expected outcome:
111:          * a. Body Diagrams image annotation field is added ot the chart.
112:          */
113: 
114:         $this->spinWait(function () use ($chartView) {
115:             $chartView->subjective->images->assertCanSee("Body Diagrams");
116:             $chartView->subjective->images->assertElementExists("canvas");
117:             return true;
118:         });
119: 
120:         // Click on the Edit button for the image annotation
121:         $chartView->subjective->images->press("Edit");
122: 
123:         /**
124:          * Expected outcome:
125:          * a. Body Diagrams annotation is in edit mode.
126:          */
127:         $this->spinWait(function ($driver) use ($chartView) {
128:             $chartView->subjective->images->assertElementVisible("#canvas_controls");
129:             return true;
130:         });
131: 
132:         // Click on the Cancel button
133:         $chartView->subjective->images->press("Cancel");
134: 
135:         // Click on the Remove button for the image annotation
136:         $chartView->subjective->images->press("Remove");
137:         //  Click Yes to confirm.
138:         $app->popup->confirmYes();
139: 
140:         /**
141:          * Expected outcome:
142:          * a. Body Diagrams image annotation field is removed.
143:          */
144: 
145:         $this->spinWait(function () use ($chartView) {
146:             $chartView->subjective->images->assertCanNotSee("Body Diagrams");
147:             $chartView->subjective->images->assertElementNotExists("canvas");
148:             return true;
149:         });
150: 
151:         // cancel the chart to clean up
152:         $chartView->cancel();
153: 
154:         $this->assertNoErrorPopups();
155:     }
156: 
157:     /**
158:      * Summary:
159:      * Custom text and form fields can be added to the Subjective section of the chart and
160:      * subsequently edited and removed.
161:      */
162:     public function testAddEditRemoveCustomFields()
163:     {
164:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
165: 
166:         // Open Patient Record for Camila C. Fisher (QAA74) > Charts section.
167:         $chartView = $app->patients->get(Patients::CAMILA_FISHER_ID)->charts->navigate()->addChart();
168: 
169:         // Remove any existing Subjective custom fields
170:         $chartView->subjective->removeAllCustomFields($app);
171: 
172:         // ***** Subjective Text Field
173:         // Press the + Subjective Field button in the Subjective section
174:         $chartView->subjective->addSubjectiveField();
175: 
176:         $chartView->popups->fields->verifyAndWait();
177:         $chartView->popups->fields->grid->waitForRowAt(0);
178: 
179:         // Search for "Subjective Text Field"
180:         $chartView->popups->fields->type("autoselect_search", "Subjective Text Field");
181:         $chartView->popups->fields->grid->waitForRowTextAt(0, "Subjective Text Field");
182: 
183:         // Click on the "Subjective Text Field" row
184:         $chartView->popups->fields->grid->waitForRowAt(0)->click();
185: 
186:         /**
187:          * Expected outcome:
188:          * a. Subjective Text Field is added ot the chart.
189:          */
190: 
191:         $this->spinWait(function () use ($chartView) {
192:             $chartView->subjective->fields->assertCanSee("Subjective Text Field");
193:             $chartView->subjective->fields->assertElementExists(".charts-HTMLInputView");
194:             return true;
195:         });
196: 
197:         // Click on the Edit button for the Subjective Text Field
198:         $chartView->subjective->fields->press("Edit");
199: 
200:         /**
201:          * Expected outcome:
202:          * a. Subjective Text Field is in edit mode.
203:          */
204:         $chartView->subjective->fields->assertElementVisible(".charts-HTMLInputView > .editing");
205: 
206:         // Click on the Cancel button
207:         $chartView->subjective->fields->press("Cancel");
208: 
209:         // Click on the Remove button for the Subjective Text Field
210:         $chartView->subjective->fields->press("Remove");
211:         //  Click Yes to confirm.
212:         $app->popup->confirmYes();
213: 
214:         /**
215:          * Expected outcome:
216:          * a. Subjective Text Field is removed.
217:          */
218: 
219:         $this->spinWait(function () use ($chartView) {
220:             $chartView->subjective->fields->assertCanNotSee("Subjective Text Field");
221:             return true;
222:         });
223: 
224: 
225:         // ***** Subjective Form Field
226:         // Press the + Subjective Field button in the Subjective section
227:         $chartView->subjective->addSubjectiveField();
228: 
229:         $chartView->popups->fields->verifyAndWait();
230:         $chartView->popups->fields->grid->waitForRowAt(0);
231: 
232:         // Search for "Subjective Form Field"
233:         $chartView->popups->fields->type("autoselect_search", "Subjective Form Field");
234:         $chartView->popups->fields->grid->waitForRowTextAt(0, "Subjective Form Field");
235: 
236:         // Click on the "Subjective Form Field" row
237:         $chartView->popups->fields->grid->waitForRowAt(0)->click();
238: 
239:         /**
240:          * Expected outcome:
241:          * a. Subjective Form Field image annotation field is added ot the chart.
242:          */
243: 
244:         $this->spinWait(function () use ($chartView) {
245:             $chartView->subjective->fields->assertCanSee("Subjective Form Field");
246:             $chartView->subjective->fields->assertElementExists(".charts-FormInputView");
247:             return true;
248:         });
249: 
250:         $this->wait(10);
251:         // Click on the Edit button for the Subjective Form Field
252:         $chartView->subjective->fields->press("Edit");
253: 
254:         /**
255:          * Expected outcome:
256:          * a. Subjective Form Field is in edit mode.
257:          */
258:         // NOTE: There is no straightforward way to determine this,
259:         // as the only thing that changes is the opacity of the form.
260:         $this->assertNoErrorPopups();
261: 
262:         // Click on the Cancel button
263:         $chartView->subjective->fields->press("Cancel");
264:         $this->waitForAjax();
265: 
266:         // Click on the Remove button for the Subjective Form Field
267:         $chartView->subjective->fields->press("Remove");
268:         //  Click Yes to confirm.
269:         $app->popup->confirmYes();
270: 
271:         /**
272:          * Expected outcome:
273:          * a. Subjective Form Field is removed.
274:          */
275: 
276:         $this->spinWait(function () use ($chartView) {
277:             $chartView->subjective->fields->assertCanNotSee("Subjective Form Field");
278:             return true;
279:         });
280: 
281: 
282: 
283:         // cancel the chart to clean up
284:         $chartView->cancel();
285: 
286:         $this->assertNoErrorPopups();
287:     }
288: }
289: 
290: ?>
API documentation generated by ApiGen