PageRenderTime 41ms CodeModel.GetById 12ms RepoModel.GetById 0ms app.codeStats 0ms

/src/test/java/com/atlassian/jira/plugins/bitbucket/pageobjects/component/BitBucketIssuePanel.java

https://bitbucket.org/atlassian/jira-bitbucket-connector/
Java | 72 lines | 51 code | 12 blank | 9 comment | 2 complexity | 219aa8119a80439ee09239d0c6b93102 MD5 | raw file
  1. package com.atlassian.jira.plugins.bitbucket.pageobjects.component;
  2. import com.atlassian.pageobjects.PageBinder;
  3. import com.atlassian.pageobjects.components.ActivatedComponent;
  4. import com.atlassian.pageobjects.elements.ElementBy;
  5. import com.atlassian.pageobjects.elements.PageElement;
  6. import com.atlassian.pageobjects.elements.query.Poller;
  7. import com.atlassian.pageobjects.elements.timeout.TimeoutType;
  8. import org.openqa.selenium.By;
  9. import javax.inject.Inject;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. /**
  13. * Represents the BitBucket panel in the view issue page
  14. */
  15. public class BitBucketIssuePanel implements ActivatedComponent<BitBucketIssuePanel>
  16. {
  17. @Inject
  18. PageBinder pageBinder;
  19. @ElementBy(id="bitbucket-commits-tabpanel")
  20. PageElement trigger;
  21. @ElementBy(id="issue_actions_container")
  22. PageElement view;
  23. public PageElement getTrigger()
  24. {
  25. return trigger;
  26. }
  27. public PageElement getView()
  28. {
  29. return view;
  30. }
  31. public BitBucketIssuePanel open()
  32. {
  33. if(!isOpen())
  34. {
  35. trigger.click();
  36. Poller.waitUntilTrue(trigger.timed().hasClass("active"));
  37. }
  38. return this;
  39. }
  40. public boolean isOpen()
  41. {
  42. return trigger.hasClass("active");
  43. }
  44. /**
  45. * Waits for commits to be retrieved from GitHub
  46. * @return List of <tt>BitBucketCommitEntry</tt>
  47. */
  48. public List<BitBucketCommitEntry> waitForMessages()
  49. {
  50. // wait for one message to be present (setting timeout type to longest value)
  51. Poller.waitUntilTrue(view.find(By.className("message-container"), TimeoutType.PAGE_LOAD).timed().isPresent());
  52. //get all the messages
  53. List<BitBucketCommitEntry> commitMessageList = new ArrayList<BitBucketCommitEntry>();
  54. for(PageElement div : view.findAll(By.className("message-container")))
  55. {
  56. commitMessageList.add(pageBinder.bind(BitBucketCommitEntry.class, div));
  57. }
  58. return commitMessageList;
  59. }
  60. }