def see_the_right_stop_and_duration_time(step):
    stop_cell = world.wait_for_element('#stop-%s' % world.rows, 5, 0.5)
    assert that(stop_cell.text).equals(datetime.datetime.now().strftime("%B%e, %Y,%l:%M %P")), \
        'The stop time is not current'
    duration_cell = world.wait_for_element('#duration-%s' % world.rows, 5, 0.5)
    assert that(duration_cell.text).equals("00:00:03"), \
        'The duration is incorrect'
def click_on_a_story(step):
    story = world.wait_for_element("div.story-header a", 5, 0.5)
    assert story, 'There are no stories.'
    world.story = world.wait_for_element("div.story-header a", 5, 0.5).value
    def ensure_story_opens():
        loaded = None
        try:
            link = world.browser.find_link_by_text(world.story).first.click()
        except:
            loaded = world.wait_for_element('#story-main')
        return loaded is not None
    world.wait_for_condition(ensure_story_opens, 10, 0.1)
 def ensure_story_opens():
     loaded = None
     try:
         link = world.browser.find_link_by_text(world.story).first.click()
     except:
         loaded = world.wait_for_element('#story-main')
     return loaded is not None
 def tag_was_deleted():
     selector = '//span[@class="tag-name" and contains(., "%s")]' % tag_name
     try:
         tag = world.wait_for_element(selector, 5, 0.5)
     except AssertionError:
         tag = None
     return tag is None
def click_the_close_button_of_a_tag(step, tag_name):
    selector = '//span[@class="tag-delete ui-icon ui-icon-close" and ' \
        'preceding-sibling::span[@class="tag-name" and ' \
        'contains(., "%s")]]' % tag_name
    button = world.wait_for_element(selector, 5, 0.5)
    assert button, 'The tag "%s" was not found' % tag_name
    button.click()
 def ensure_dialog_loads():
     world.browser.execute_script('$(".phase-controls").css'
                                  '("visibility","visible")')
     button = world.wait_for_many_elements('div.phase button')[number * 2 - 3 + nth]
     assert button, 'There is no %s button for phase %s' % (button_name, number)
     button.click()
     form = world.wait_for_element('#%s-phase-dialog' % button_name.lower())
     try:
         assert form.visible
     except AssertionError:
         pass
     return form.visible
def see_the_validation_error_for_field(step, form, value):
    form = form.lower()
    selector = '//div[@id="%s-phase-dialog"]//div[contains(., "%s")]' % (form, value)
    error = world.wait_for_element(selector, dont_fail=True)
    assert error, 'No validation errors as expected'
def see_the_phase_form(step, form):
    found = world.wait_for_element('#%s-phase-dialog' % form)
    assert found.visible, 'The %s Form was not found' % form.capitalize()
    name = step.given(u'see the form field "name"')
    description = step.given(u'see the form field "description"')
    strories_limit = step.given(u'see the form field "stories_limit"')
def see_a_tag_with_name(step, tag_name):
    selector = '//span[@class="tag-name" and contains(., "%s")]' % tag_name
    tag = world.wait_for_element(selector, 5, 0.5)
    assert tag, 'The tag was not created'
def click_the_star_button(step):
    start = world.wait_for_element("#time-entries-start", 5, 0.5)
    assert start, 'There is not the start button'
    cells = world.browser.find_by_css('#table-container td')
    world.len_table = len(cells)
    start.click()
def click_elsewhere(step):
    selector = '#story-number'
    elsewhere = world.wait_for_element("#story-number", 5, 0.5)
    elsewhere.click()
def replace_tag_name(step, new_name):
    selector = '//input[@class="new-tag-name"]'
    input = world.wait_for_element(selector, 5, 0.5)
    input.click()
    input.value = new_name
def see_text_box_with_tag_name(step, tag_name):
    selector = 'input.new-tag-name'
    input = world.wait_for_element(selector, 5, 0.5)
    assert input, 'Such input does not exist'
def double_click_a_tag(step, tag_name):
    selector = '//span[@class="tag-name" and contains(., "%s")]' % tag_name
    tag = world.wait_for_element(selector, 5, 0.5)
    assert tag, 'Such tag does not exist'
    world.browser.execute_script('$(".tag-name:contains(%s)").dblclick()' % tag_name)
def click_on_a_link_project(step):
    projects = world.wait_for_element("#projects ul li a", 5, 0.5)
    assert projects, 'There are no projects.'
    world.project = world.wait_for_element("div.portlet-header a", 5, 0.5).value
    projects.click()
def see_an_error_message(step, message):
    error_message = world.wait_for_element('#agile-message', dont_fail=True)
    if not error_message.visible:
        assert False, 'The message was not shown'
    assert that(error_message.text).equals(message), \
        'The message was not the expected'
def wait_for_the_requested_port(step, port):
    found = world.wait_for_element('#%s' % port)
    assert found, 'This is not the %s port'
def see_the_project_form(step, form):
    found = world.wait_for_element('#add-project', 5, 0.5)
    assert found, 'The %s Project Form was not found' % form.capitalize()
def see_the_requested_port(step, port):
    port = world.wait_for_element("#%s" % port)
    assert port, 'The requested port does not exist in this page.'
def click_the_stop_button(step):
    world.rows = world.len_table2 / 4
    stop = world.wait_for_element("#time-entries-stop", 5, 0.5)
    assert stop, 'There is not the stop button'
    stop.click()
def add_a_new_tag(step, tag_name):
    selector = '#new-tag'
    input = world.wait_for_element(selector, 5, 0.5)
    assert input, 'The input for a new tag is not present.'
    input.value = tag_name
    world.browser.execute_script('$("%s").focusout();' % selector)