module ConflictManager
  class ConflictResponsePage < BasePage
    page_url "/conflict/<%=params[:conflict_id]%>/respond"

    radio_button_group(:exclusivity, name: "exclusive-rights")
    labels(:continent, class: "ContinentItem-label")
    div(:move_territories, class: "TerritoriesListManager-move-button")
    divs(:reason_form, class: "ReasonForm")
    section(:release_reason, class: "ReleaseReason")
    section(:assert_reason, class: "AssertReason")
    div(:action_summary, class: "ActionSummary")
    h4(:assert_summary, class: "RightsSummary-header", text: /Asserting/)
    h4(:release_summary, class: "RightsSummary-header", text: /Releasing/)
    button(:next, id: "resolve-conflict-next")

    def select_reason(reason)
      reason_form_elements.last.div_element(class: "Select").click
      wait_until { div_element(class: "Select-menu-outer").present? }
      div_elements(class: "Select-option").find { |owner_type| owner_type.text == reason }.element.click
    end

    def assert_territories
      select_reason "I am the original master copyright owner"
      self.next
    end

    def claim_some_territories
      continent_elements.last.click
      wait_until { !move_territories_element.attribute("class").include? "hide" }
      move_territories_element.click
      self.next
      wait_until { reason_form_elements.any? }
      release_territories if release_reason?
      wait_until { assert_reason? || action_summary? }
      assert_territories if assert_reason?
    end

    def release_territories
      select_reason "My rights should not have been claimed in these territories"
      self.next
    end
  end
end
