/* * PatientView * * Copyright (c) Worth Solutions Limited 2004-2013 * * This file is part of PatientView. * * PatientView is free software: you can redistribute it and/or modify it under the terms of the * GNU General Public License as published by the Free Software Foundation, either version 3 of the License, * or (at your option) any later version. * PatientView is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License along with PatientView in a file * titled COPYING. If not, see <http://www.gnu.org/licenses/>. * * @package PatientView * @link http://www.patientview.org * @author PatientView <info@patientview.org> * @copyright Copyright (c) 2004-2013, Worth Solutions Limited * @license http://www.gnu.org/licenses/gpl-3.0.html The GNU General Public License V3.0 */ package com.worthsoln.test.web; import net.sourceforge.jwebunit.util.TestingEngineRegistry; import org.apache.commons.lang.StringUtils; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Value; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import java.util.Calendar; import static net.sourceforge.jwebunit.junit.JWebUnit.*; /** * */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = "classpath:spring-context.xml") @Ignore public class TestResultTest { @Value("${base.url}") private String baseUrl; @Value("${user.username}") private String username; @Value("${user.password}") private String password; @Before public void prepare() { setTestingEngineKey(TestingEngineRegistry.TESTING_ENGINE_HTMLUNIT); setBaseUrl(baseUrl); } @Ignore public void testEnterMyOwnResults() { login(); assertLinkPresentWithText("Enter My Own Results"); clickLinkWithText("Enter My Own Results"); assertTextPresent("Enter My Own Results"); assertLinkPresentWithText("Blood Pressure"); assertLinkPresentWithText("Glucose Values"); assertLinkPresentWithText("Weight"); assertLinkPresentWithText("Comment"); // Blood Pressure link checkBloodPressure(); gotoRootWindow(); clickLinkWithText("Enter My Own Results"); // Glucose Values link checkGlucoseValues(); clickLinkWithText("Enter My Own Results"); // Weight link checkWeight(); clickLinkWithText("Enter My Own Results"); // Weight link checkComment(); } @Ignore public void testResults() { login(); clickLinkWithExactText("Results"); assertTextPresent("Results"); assertTextPresent("Result panels"); assertLinkPresentWithText("2"); assertLinkPresentWithText("3"); assertLinkPresentWithText("4"); assertLinkPresentWithText("5"); assertLinkPresentWithText("6"); assertLinkPresentWithText("Next"); assertLinkPresentWithText("Last"); assertLinkPresentWithText("Urea"); assertLinkPresentWithText("Creatinine"); assertLinkPresentWithText("K"); assertLinkPresentWithText("Ca"); assertLinkPresentWithText("PO4"); assertLinkPresentWithText("Hb"); assertLinkPresentWithText("wbc"); assertLinkPresentWithText("plats"); assertLinkPresentWithText("eGFR"); assertLinkPresentWithText("Comment"); clickLinkWithText("Urea"); gotoWindowByTitle("Urea (Renal PatientView)"); assertTextPresent("Urea is a small molecule produced from protein"); gotoRootWindow(); clickLinkWithText("Creatinine"); gotoWindowByTitle("Creatinine (Renal PatientView)"); assertTextPresent("This is the best routine blood test for measuring"); gotoRootWindow(); clickLinkWithText("K"); gotoWindowByTitle("Potassium (Renal PatientView)"); assertTextPresent("Potassium comes from diet"); gotoRootWindow(); clickLinkWithText("Ca"); gotoWindowByTitle("Calcium (Renal PatientView)"); assertTextPresent("Low calcium is usual in people with untreated kidney disease"); gotoRootWindow(); clickLinkWithText("PO4"); gotoWindowByTitle("Phosphate (Renal PatientView)"); assertTextPresent("Phosphate levels are high in kidney failure"); gotoRootWindow(); clickLinkWithText("Hb"); gotoWindowByTitle("Haemoglobin (Renal PatientView)"); assertTextPresent("Haemoglobin is the red stuff in blood"); gotoRootWindow(); clickLinkWithText("wbc"); gotoWindowByTitle("White blood cells (Renal PatientView)"); assertTextPresent("White blood cells fight infection in the body."); gotoRootWindow(); clickLinkWithText("plats"); // The plats links page has the same title with Hb link's //gotoWindowByTitle("Haemoglobin (Renal PatientView)"); //assertTextPresent("Platelets are important in the formation"); gotoRootWindow(); clickLinkWithText("eGFR"); gotoWindowByTitle("eGFR (Renal PatientView)"); assertTextPresent("eGFR uses the result of your Creatinine test "); gotoRootWindow(); clickLinkWithText("Comment"); assertTextPresent("Test results for"); gotoRootWindow(); checkNo2Panel(); checkNo3Panel(); checkNo4Panel(); checkNo5Panel(); checkNo6Panel(); } private void checkNo2Panel() { clickLinkWithText("2"); assertLinkPresentWithText("First"); assertLinkPresentWithText("Prev"); assertLinkPresentWithText("1"); assertLinkPresentWithText("3"); assertLinkPresentWithText("4"); assertLinkPresentWithText("5"); assertLinkPresentWithText("6"); assertLinkPresentWithText("Next"); assertLinkPresentWithText("Last"); assertLinkPresentWithText("Alb"); assertLinkPresentWithText("CRP"); assertLinkPresentWithText("Na"); assertLinkPresentWithText("HCO3"); assertLinkPresentWithText("PCR"); assertLinkPresentWithText("ACR"); assertLinkPresentWithText("Cholest"); assertLinkPresentWithText("TG"); assertLinkPresentWithText("Gluc"); assertLinkPresentWithText("AdjCa"); clickLinkWithText("Alb"); gotoWindowByTitle("Albumin (Renal PatientView)"); assertTextPresent("Albumin is a protein in human blood"); gotoRootWindow(); clickLinkWithText("CRP"); gotoWindowByTitle("CRP (Renal PatientView)"); assertTextPresent("CRP is one of the proteins normally present in blood"); gotoRootWindow(); clickLinkWithText("Na"); gotoWindowByTitle("Sodium (Renal PatientView)"); assertTextPresent("Sodium is found in common salt"); gotoRootWindow(); clickLinkWithText("HCO3"); gotoWindowByTitle("HCO3 (Renal PatientView)"); assertTextPresent("Bicarbonate is a chemical in the blood"); gotoRootWindow(); clickLinkWithExactText("PCR"); gotoWindowByTitle("PCR (Renal PatientView)"); assertTextPresent("These tests measure how much protein is leaking"); gotoRootWindow(); clickLinkWithText("ACR"); gotoWindowByTitle("ACR (Renal PatientView)"); assertTextPresent("This measures how much of a particular protein"); gotoRootWindow(); clickLinkWithText("Cholest"); gotoWindowByTitle("Lipids (Renal PatientView)"); assertTextPresent("Cholesterol is the best-known"); gotoRootWindow(); // The TG links page has the same title with Cholest link's clickLinkWithText("TG"); //gotoWindowByTitle("Lipids (Renal PatientView)"); //assertTextPresent("White blood cells fight infection in the body."); gotoRootWindow(); clickLinkWithText("Gluc"); gotoWindowByTitle("Glucose (Renal PatientView)"); assertTextPresent("Glucose is a common type of sugar"); gotoRootWindow(); clickLinkWithText("AdjCa"); gotoWindowByTitle("Adjusted Calcium (Renal PatientView)"); assertTextPresent("Low calcium is usual in people with untreated kidney disease"); gotoRootWindow(); } private void checkNo3Panel() { clickLinkWithText("3"); assertLinkPresentWithText("First"); assertLinkPresentWithText("Prev"); assertLinkPresentWithText("1"); assertLinkPresentWithText("2"); assertLinkPresentWithText("4"); assertLinkPresentWithText("5"); assertLinkPresentWithText("6"); assertLinkPresentWithText("Next"); assertLinkPresentWithText("Last"); assertLinkPresentWithText("Weight"); assertLinkPresentWithText("BPsys"); assertLinkPresentWithText("Height"); assertLinkPresentWithText("INR"); assertLinkPresentWithText("Ciclo"); assertLinkPresentWithText("Tacro"); assertLinkPresentWithText("Siro"); assertLinkPresentWithText("PTH"); assertLinkPresentWithText("HbA1c"); clickLinkWithText("Weight"); gotoWindowByTitle("Weight and height (Renal PatientView)"); assertTextPresent("Weight is an important guide to changes in body fluids"); gotoRootWindow(); clickLinkWithText("BPsys"); gotoWindowByTitle("Blood pressure (Renal PatientView)"); assertTextPresent("Blood pressure is very important for patients with kidney diseases"); gotoRootWindow(); clickLinkWithText("Height"); gotoWindowByTitle("Weight and height (Renal PatientView)"); assertTextPresent("Rapid changes in weight - pounds"); gotoRootWindow(); clickLinkWithText("INR"); gotoWindowByTitle("INR (Renal PatientView)"); assertTextPresent("INR measures how easily your blood"); gotoRootWindow(); clickLinkWithExactText("Ciclo"); gotoWindowByTitle("Ciclosporin (Renal PatientView)"); assertTextPresent("This is the name of a powerful anti-rejection drugs"); gotoRootWindow(); clickLinkWithText("Tacro"); gotoWindowByTitle("Tacrolimus (Renal PatientView)"); assertTextPresent("Tacrolimus is a powerful anti-rejection drug"); gotoRootWindow(); clickLinkWithText("Siro"); gotoWindowByTitle("Sirolimus (Renal PatientView)"); assertTextPresent("Sirolimus is an anti-rejection drug that is used after transplantation"); gotoRootWindow(); clickLinkWithText("PTH"); gotoWindowByTitle("PTH (Renal PatientView)"); assertTextPresent("Parathyroid hormone (PTH) is measured from time to time"); gotoRootWindow(); clickLinkWithText("HbA1c"); gotoWindowByTitle("Glucose (Renal PatientView)"); assertTextPresent("Glucose is a common type of sugar"); gotoRootWindow(); } private void checkNo4Panel() { clickLinkWithText("4"); assertLinkPresentWithText("First"); assertLinkPresentWithText("Prev"); assertLinkPresentWithText("1"); assertLinkPresentWithText("2"); assertLinkPresentWithText("3"); assertLinkPresentWithText("5"); assertLinkPresentWithText("6"); assertLinkPresentWithText("Next"); assertLinkPresentWithText("Last"); } private void checkNo5Panel() { clickLinkWithText("5"); assertLinkPresentWithText("First"); assertLinkPresentWithText("Prev"); assertLinkPresentWithText("1"); assertLinkPresentWithText("2"); assertLinkPresentWithText("3"); assertLinkPresentWithText("4"); assertLinkPresentWithText("6"); assertLinkPresentWithText("Next"); assertLinkPresentWithText("Last"); } private void checkNo6Panel() { clickLinkWithText("6"); assertLinkPresentWithText("First"); assertLinkPresentWithText("Prev"); assertLinkPresentWithText("1"); assertLinkPresentWithText("2"); assertLinkPresentWithText("3"); assertLinkPresentWithText("4"); assertLinkPresentWithText("5"); assertLinkPresentWithText("Next"); assertLinkPresentWithText("Last"); } private void checkBloodPressure() { // Blood Pressure clickLinkWithText("Blood Pressure"); assertTextPresent("Enter My Blood Pressure"); assertTextPresent("Use this page to enter values from home"); Calendar calendar = Calendar.getInstance(); assertSelectOptionPresent("day", String.valueOf(calendar.get(Calendar.DAY_OF_MONTH))); assertSelectOptionPresent("year", String.valueOf(calendar.get(Calendar.YEAR))); assertSelectOptionPresent("hour", StringUtils.leftPad( String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)), 2, "0")); assertSelectOptionPresent("minute", StringUtils.leftPad( String.valueOf(calendar.get(Calendar.MINUTE)), 2, "0")); assertLinkPresentWithText("Systolic"); assertFormElementPresent("patientResultValue1"); assertLinkPresentWithText("Diastolic"); assertFormElementPresent("patientResultValue2"); assertButtonPresentWithText("Add"); // add setTextField("patientResultValue1", "120"); setTextField("patientResultValue2", "80"); submit(); assertTextPresent("By pressing the Submit All button "); assertButtonPresentWithText("Submit All"); assertButtonPresentWithText("Delete"); // Submit All clickButtonWithText("Submit All"); assertButtonNotPresentWithText("Delete"); setTextField("patientResultValue1", "130"); setTextField("patientResultValue2", "90"); submit(); assertButtonPresentWithText("Delete"); assertButtonPresentWithText("Submit All"); // Delete clickButtonWithText("Delete"); assertButtonNotPresentWithText("Submit All"); assertTextFieldEquals("patientResultValue1", ""); assertTextFieldEquals("patientResultValue2", ""); // Systolic link clickLinkWithText("Systolic"); gotoWindowByTitle("Blood pressure (Renal PatientView)"); assertTitleEquals("Blood pressure (Renal PatientView)"); } private void checkGlucoseValues() { // Glucose Values clickLinkWithText("Glucose Values"); assertTextPresent("Enter My Glucose"); assertTextPresent("these results will not be automatically sent to anyone"); Calendar calendar = Calendar.getInstance(); assertSelectOptionPresent("day", String.valueOf(calendar.get(Calendar.DAY_OF_MONTH))); assertSelectOptionPresent("year", String.valueOf(calendar.get(Calendar.YEAR))); assertSelectOptionPresent("hour", StringUtils.leftPad( String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)), 2, "0")); assertSelectOptionPresent("minute", StringUtils.leftPad( String.valueOf(calendar.get(Calendar.MINUTE)), 2, "0")); assertFormElementPresent("patientResultValue1"); assertButtonPresentWithText("Add"); // add setTextField("patientResultValue1", "200"); submit(); assertTextPresent("you will add these glucose values to your record"); assertButtonPresentWithText("Submit All"); assertButtonPresentWithText("Delete"); // Submit All clickButtonWithText("Submit All"); assertButtonNotPresentWithText("Delete"); setTextField("patientResultValue1", "130"); submit(); assertButtonPresentWithText("Delete"); assertButtonPresentWithText("Submit All"); // Delete clickButtonWithText("Delete"); assertButtonNotPresentWithText("Submit All"); assertTextFieldEquals("patientResultValue1", ""); } private void checkWeight() { // Weight clickLinkWithText("Weight"); assertTextPresent("Enter My Weight"); assertTextPresent("If you need advice"); Calendar calendar = Calendar.getInstance(); assertSelectOptionPresent("day", String.valueOf(calendar.get(Calendar.DAY_OF_MONTH))); assertSelectOptionPresent("year", String.valueOf(calendar.get(Calendar.YEAR))); assertSelectOptionPresent("hour", StringUtils.leftPad( String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)), 2, "0")); assertSelectOptionPresent("minute", StringUtils.leftPad( String.valueOf(calendar.get(Calendar.MINUTE)), 2, "0")); assertFormElementPresent("patientResultValue1"); assertButtonPresentWithText("Add"); // add setTextField("patientResultValue1", "180"); submit(); assertTextPresent("you will add these weight values to your record"); assertButtonPresentWithText("Submit All"); assertButtonPresentWithText("Delete"); // Submit All clickButtonWithText("Submit All"); assertButtonNotPresentWithText("Delete"); setTextField("patientResultValue1", "170"); submit(); assertButtonPresentWithText("Delete"); assertButtonPresentWithText("Submit All"); // Delete clickButtonWithText("Delete"); assertButtonNotPresentWithText("Submit All"); assertTextFieldEquals("patientResultValue1", ""); } private void checkComment() { // Comment clickLinkWithText("Comment"); assertTextPresent("Enter My Comments"); assertTextPresent("Currently comments are limited to 100 characters."); Calendar calendar = Calendar.getInstance(); assertSelectOptionPresent("day", String.valueOf(calendar.get(Calendar.DAY_OF_MONTH))); assertSelectOptionPresent("year", String.valueOf(calendar.get(Calendar.YEAR))); assertSelectOptionPresent("hour", StringUtils.leftPad( String.valueOf(calendar.get(Calendar.HOUR_OF_DAY)), 2, "0")); assertSelectOptionPresent("minute", StringUtils.leftPad( String.valueOf(calendar.get(Calendar.MINUTE)), 2, "0")); assertFormElementPresent("patientResultValue1"); assertButtonPresentWithText("Add"); // add setTextField("patientResultValue1", "this is test comment!"); submit(); assertTextPresent("this is test comment!"); assertTextPresent("you will add these comments to your record"); assertButtonPresentWithText("Submit All"); assertButtonPresentWithText("Delete"); // Submit All clickButtonWithText("Submit All"); assertButtonNotPresentWithText("Delete"); assertTextNotPresent("this is test comment!"); setTextField("patientResultValue1", "test comment"); submit(); assertButtonPresentWithText("Delete"); assertButtonPresentWithText("Submit All"); // Delete clickButtonWithText("Delete"); assertButtonNotPresentWithText("Submit All"); assertTextFieldEquals("patientResultValue1", ""); } private void login() { beginAt("/"); // start assertFormElementPresent("j_username"); assertFormElementPresent("j_password"); setTextField("j_username", username); setTextField("j_password", password); submit(); assertLinkPresentWithText("Logout"); // we should now be logged in } }