Advertisement
Guest User

dashboard

a guest
Oct 25th, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.49 KB | None | 0 0
  1. dashboardPage
  2.  
  3. this.btnJobCode = $('[href="/job_codes/"]');
  4. this.btnAddCompany = $('[href="/companies/add/"]');
  5. this.btnDetails = $('[aria-label="Details"]');
  6. this.btnAddContacts = $('[href="/contacts/add/"]');
  7. ------------------------------------
  8. servises/index
  9.  
  10. getJobCodePage: function () {
  11. const JobCodePage = require('./JobCodePage');
  12. return new JobCodePage();
  13. },
  14. getAddCompanyPage: function () {
  15. const AddCompanyPage = require('./AddCompanyPage');
  16. return new AddCompanyPage();
  17. },
  18. getAddContactsPage: function () {
  19. const AddContactsPage = require('./AddContactsPage');
  20. return new AddContactsPage();
  21. }
  22. ------------------------------------------------------
  23. AddCompanyPage
  24.  
  25. 'use strict';
  26. const commonHelper = require('./helpers/common.helper');
  27.  
  28.  
  29. class AddCompanyPage {
  30. constructor() {
  31. this.companyTitle = $('h3');
  32. this.txtCompanyName = $('[ng-model="company.name"]');
  33. this.txtCompanySite = $('[ng-model="company.website"]');
  34. this.txtCompanyNote = $('[ng-model="company.notes"]');
  35. this.txtCompanyType = $('[ng-model="company.kind"]');
  36. this.btnSaveCompany = element(by.xpath('//span[text()="Save"]'));
  37. this.imageCompany = $('[src="company.icon_path"]');
  38. this.txtSeachCompany = $('[ng-change="getCompanies()"]');
  39. }
  40.  
  41. selectCompanyType(type){
  42. browser.waitForAngular();
  43. commonHelper.waitUntilElementVisible(this.txtCompanyType);
  44. browser.sleep(1000);
  45. this.txtCompanyType.click();
  46. browser.sleep(2000);
  47. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ type +'")]')).click();
  48. }
  49.  
  50. searchCompany(name){
  51. return element(by.xpath('//*[contains(@class, "md-cell ng-binding")][contains(.,"'+ name +'")]'));
  52. }
  53. }
  54.  
  55. module.exports = AddCompanyPage;
  56.  
  57. --------------------------------------------------
  58. AddContactsPage
  59.  
  60. 'use strict';
  61. const commonHelper = require('./helpers/common.helper');
  62.  
  63. class AddContactsPage {
  64. constructor() {
  65. this.txtContactName = $('[ng-model="contact.first_name"]');
  66. this.txtContactLastName = $('[ng-model="contact.last_name"]');
  67. this.txtContactTitte = $('[ng-model="contact.title"]');
  68. this.txtContactNumber = $('[ng-model="contact.phone_number"]');
  69. this.txtContactEmail = $('[ng-model="contact.email"]');
  70. this.txtContactsCompany = $('[ng-model="contact.company"]');
  71. this.txtContactsOffices = $('[ng-model="contact.offices"]');
  72. this.txtSeachContacts = $('[ng-change="getCallers()"]');
  73. this.btnSaveCompany = element(by.xpath('//span[text()="Save"]'));
  74. this.btnDetailsContact = element(by.xpath('//*[contains(@class,"md-whiteframe layout-padding")]//*[contains(@class, "material-icons")]'));
  75. }
  76.  
  77. getTable(attribute) {
  78. return element(by.xpath('//span[text()=.,"'+ attribute +'"]'))
  79. }
  80.  
  81. saveCompany(){
  82. browser.executeScript('document.querySelector(".md-select-backdrop").remove()');
  83. browser.executeScript('document.getElementsByClassName("md-scroll-mask")[0].style.display = "none"');
  84. this.btnSaveCompany.click();
  85. }
  86.  
  87. selectContactOffices(name){
  88. browser.waitForAngular();
  89. commonHelper.waitUntilElementVisible(this.txtContactsOffices);
  90. browser.sleep(1000);
  91. this.txtContactsOffices.click();
  92. browser.sleep(2000);
  93. element(by.xpath('//div[contains(@class, "md-select-menu-container")]//div[contains(.,"'+ name +'")]')).click();
  94. browser.executeScript('document.getElementsByClassName("md-select-menu-container md-oc-theme md-active md-clickable")[0].style.display = "none"')
  95. }
  96.  
  97. selectContactCompany(name){
  98. browser.waitForAngular();
  99. commonHelper.waitUntilElementVisible(this.txtContactsCompany);
  100. browser.sleep(1000);
  101. this.txtContactsCompany.click();
  102. browser.sleep(2000);
  103. element(by.xpath('//div[contains(@class, "md-select-menu-container md-oc-theme md-active md-clickable")]//div[contains(.,"'+ name +'")]')).click();
  104. }
  105. }
  106.  
  107. module.exports = AddContactsPage;
  108. ---------------------------------------------------------------------
  109. JobCodePage
  110.  
  111. 'use strict';
  112.  
  113. const commonHelper = require('./helpers/common.helper');
  114.  
  115. class JobCodePage {
  116. constructor() {
  117. this.btnAddCode = $('[aria-label="Add Code"]');
  118. this.pageTittle = $('h3');
  119. this.txtJobCode = $('[ng-model="jobCode.user_job_code_no"]');
  120. this.txtDiscription = $('[ng-model="jobCode.description"]');
  121. this.btnSave = $('[aria-label="Save"]');
  122. this.txtSearchCode = $('[ng-model="paginator.query.search"]');
  123. this.btnDetailsJobe = element(by.xpath('//*[contains(@class,"md-table ng-isolate-scope")]//*[contains(@class, "material-icons icon-stroke")]'));
  124. }
  125.  
  126. searchCode(name){
  127. return element(by.xpath('//*[contains(@class, "md-cell ng-binding")][contains(.,"'+ name +'")]'));
  128. }
  129. }
  130. module.exports = JobCodePage;
  131.  
  132. -------------------------------------------------------------
  133. dashboard.spec
  134.  
  135. 'use strict';
  136.  
  137. const pageObject = require('./../../services').container.PageObject;
  138. const signInPage = pageObject.getSignInPage();
  139. const dashboardPage = pageObject.getDashboardPage();
  140. const ticketsPage = pageObject.getTicketsPage();
  141. const editTicketPage = pageObject.getEditTicketPage()
  142. const jobCodePage = pageObject.getJobCodePage();
  143. const addCompanyPage = pageObject.getAddCompanyPage();
  144. const addContactsPage = pageObject.getAddContactsPage();
  145. const signInData = require('./../../data/sign_in');
  146. const dashboardData = require('./../../data/dashboard');
  147. const ticketsData = require('./../../data/tickets');
  148. const commonHelper = require('./../../services/helpers/common.helper');
  149. var strftime = require('strftime');
  150.  
  151. describe('Dashboard', () => {
  152.  
  153. var username = signInData.testAccount.username;
  154. var password = signInData.testAccount.password;
  155.  
  156. beforeAll(() => {
  157. browser.ignoreSynchronization = false;
  158. browser.driver.manage().window().setSize(1440, 900);
  159. });
  160.  
  161. afterAll(() => {
  162. commonHelper.clearAllData();
  163. });
  164.  
  165. describe('checking for add job code', () => {
  166. var time = commonHelper.uniqueValue();
  167.  
  168. beforeAll(() => {
  169. browser.get(signInData.link);
  170. });
  171.  
  172. afterAll(() => {
  173. commonHelper.clearAllData();
  174. });
  175.  
  176. it('should open login page', () => {
  177. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  178. });
  179.  
  180. it('should redirect on dashboard page after login', () => {
  181. signInPage.login(username, password);
  182. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  183.  
  184. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  185. });
  186.  
  187. it('should add job code', () => {
  188. dashboardPage.openMenu('Jobs');
  189. dashboardPage.btnJobCode.click();
  190. expect(dashboardPage.pageTittle.getText()).toEqual('Job Codes');
  191. });
  192.  
  193. it('should click on add job code', () => {
  194. jobCodePage.btnAddCode.click();
  195. expect(jobCodePage.pageTittle.getText()).toEqual('Add Job Code');
  196. });
  197.  
  198. it('should add job code', () => {
  199. jobCodePage.txtJobCode.sendKeys(time);
  200. jobCodePage.txtDiscription.sendKeys('Job'+time);
  201. jobCodePage.btnSave.click();
  202. commonHelper.waitUntilElementPresent(jobCodePage.btnAddCode);
  203. });
  204.  
  205. /* it('should search job code', () => {
  206. jobCodePage.txtSearchCode.sendKeys(time);
  207. commonHelper.waitUntilElementVisible(jobCodePage.searchCode(time));
  208. });
  209.  
  210. it('should see job code details',()=>{
  211. jobCodePage.btnDetailsJobe.click();
  212. });*/
  213. });
  214.  
  215. describe('checking for add company', () => {
  216.  
  217. var time = commonHelper.uniqueValue();
  218.  
  219. beforeAll(() => {
  220. browser.get(signInData.link);
  221. });
  222.  
  223. afterAll(() => {
  224. commonHelper.clearAllData();
  225. });
  226.  
  227. it('should open login page', () => {
  228. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  229. });
  230.  
  231. it('should redirect on dashboard page after login', () => {
  232. signInPage.login(username, password);
  233. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  234.  
  235. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  236. });
  237.  
  238. it('should click on add company', () => {
  239. dashboardPage.btnAddCompany.click();
  240. expect(addCompanyPage.companyTitle.getText()).toEqual('Add Company');
  241. });
  242.  
  243. it('should add company', () => {
  244. addCompanyPage.txtCompanyName.sendKeys('Microsoft' + time);
  245. addCompanyPage.txtCompanySite.sendKeys('www.'+ time +'.com');
  246. addCompanyPage.selectCompanyType('Service');
  247. addCompanyPage.txtCompanyNote.sendKeys(time);
  248. });
  249.  
  250. it('should add icon company',() => {
  251. editTicketPage.uploadAttachment('index.jpg');
  252. addCompanyPage.btnSaveCompany.click();
  253. expect(addCompanyPage.imageCompany.isDisplayed()).toBe(true);
  254. });
  255.  
  256. it('should redirect to dashboard',() => {
  257. dashboardPage.openMenu('Dashboard');
  258. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  259. });
  260.  
  261. it('should search company',() => {
  262. addCompanyPage.txtSeachCompany.sendKeys('Microsoft' + time);
  263. commonHelper.waitUntilElementVisible(addCompanyPage.searchCompany('Microsoft' + time));
  264. });
  265.  
  266. it('should see company details',() => {
  267. dashboardPage.btnDetails.click();
  268. expect(dashboardPage.pageTittle.getText()).toEqual('Microsoft' + time);
  269. });
  270.  
  271. });
  272.  
  273. describe('checking for add contacts', () => {
  274.  
  275. var time = commonHelper.uniqueValue();
  276.  
  277. beforeAll(() => {
  278. browser.get(signInData.link);
  279. });
  280.  
  281. afterAll(() => {
  282. commonHelper.clearAllData();
  283. });
  284.  
  285. it('should open login page', () => {
  286. expect(signInPage.btnLogin.isDisplayed()).toBe(true);
  287. });
  288.  
  289. it('should redirect on dashboard page after login', () => {
  290. signInPage.login(username, password);
  291. commonHelper.waitUntilElementPresent(dashboardPage.menu);
  292.  
  293. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  294. });
  295.  
  296. it('should click on add contacts', () => {
  297. dashboardPage.btnAddContacts.click();
  298. });
  299.  
  300. it('should add contacts', () => {
  301. addContactsPage.txtContactName.sendKeys('Gabe' + time);
  302. addContactsPage.txtContactLastName.sendKeys('Malcovich'+ time);
  303. addContactsPage.txtContactTitte.sendKeys('QA' + time);
  304. addContactsPage.selectContactCompany('Chevron');
  305. addContactsPage.selectContactOffices('Chevron Corporate Offices');
  306. addContactsPage.txtContactNumber.sendKeys(time);
  307. addContactsPage.txtContactEmail.sendKeys(time + '@mailinator.com');
  308. });
  309.  
  310. it('should save contacts', () => {
  311. addContactsPage.saveCompany();
  312. });
  313.  
  314. it('should redirect to dashboard',() => {
  315. dashboardPage.openMenu('Dashboard');
  316. expect(dashboardPage.pageTittle.getText()).toEqual(dashboardData.title);
  317. });
  318.  
  319. it('should search contacts',() => {
  320. addContactsPage.txtSeachContacts.sendKeys('Gabe' + time);
  321. commonHelper.waitUntilElementVisible(addCompanyPage.searchCompany('Gabe' + time));
  322. });
  323.  
  324. it('should see contacts details',() => {
  325. addContactsPage.btnDetailsContact.click();
  326. expect(dashboardPage.pageTittle.getText()).toEqual('QA' + time);
  327. expect(addContactsPage.getTable(time + '@mailinator.com'));
  328. expect(addContactsPage.getTable(time));
  329. });
  330. });
  331. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement