aboutsummaryrefslogtreecommitdiffstats
path: root/unix
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2012-07-03 14:52:26 +0000
committerPierre Ossman <ossman@cendio.se>2012-07-03 14:52:26 +0000
commit2137f4f78f2b80faf96707907cd08562d83f1216 (patch)
tree6b9c8f1e09c1dd343b65510d853ba9c3e62f1db6 /unix
parentfe48cd4d2427c0262cd58b30c74331a9fce756c7 (diff)
downloadtigervnc-2137f4f78f2b80faf96707907cd08562d83f1216.tar.gz
tigervnc-2137f4f78f2b80faf96707907cd08562d83f1216.zip
GnuTLS 3.x has removed gnutls_transport_set_global_errno() in favour of
gnutls_transport_set_errno(). Make sure we call the right errno function depending on which GnuTLS we're using. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4922 3789f03b-4d11-0410-bbf8-ca57d06f2519
Diffstat (limited to 'unix')
0 files changed, 0 insertions, 0 deletions
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
# Redmine - project management software
# Copyright (C) 2006-2013  Jean-Philippe Lang
#
# This program 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 2
# of the License, or (at your option) any later version.
#
# This program 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 this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.

require File.expand_path('../../test_helper', __FILE__)

class IssueStatusTest < ActiveSupport::TestCase
  fixtures :issue_statuses, :issues, :roles, :trackers

  def test_create
    status = IssueStatus.new :name => "Assigned"
    assert !status.save
    # status name uniqueness
    assert_equal 1, status.errors.count

    status.name = "Test Status"
    assert status.save
    assert !status.is_default
  end

  def test_destroy
    status = IssueStatus.find(3)
    assert_difference 'IssueStatus.count', -1 do
      assert status.destroy
    end
    assert_nil WorkflowTransition.first(:conditions => {:old_status_id => status.id})
    assert_nil WorkflowTransition.first(:conditions => {:new_status_id => status.id})
  end

  def test_destroy_status_in_use
    # Status assigned to an Issue
    status = Issue.find(1).status
    assert_raise(RuntimeError, "Can't delete status") { status.destroy }
  end

  def test_default
    status = IssueStatus.default
    assert_kind_of IssueStatus, status
  end

  def test_change_default
    status = IssueStatus.find(2)
    assert !status.is_default
    status.is_default = true
    assert status.save
    status.reload

    assert_equal status, IssueStatus.default
    assert !IssueStatus.find(1).is_default
  end

  def test_reorder_should_not_clear_default_status
    status = IssueStatus.default
    status.move_to_bottom
    status.reload
    assert status.is_default?
  end

  def test_new_statuses_allowed_to
    WorkflowTransition.delete_all

    WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 2, :author => false, :assignee => false)
    WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 3, :author => true, :assignee => false)
    WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 4, :author => false, :assignee => true)
    WorkflowTransition.create!(:role_id => 1, :tracker_id => 1, :old_status_id => 1, :new_status_id => 5, :author => true, :assignee => true)
    status = IssueStatus.find(1)
    role = Role.find(1)
    tracker = Tracker.find(1)

    assert_equal [2], status.new_statuses_allowed_to([role], tracker, false, false).map(&:id)
    assert_equal [2], status.find_new_statuses_allowed_to([role], tracker, false, false).map(&:id)

    assert_equal [2, 3, 5], status.new_statuses_allowed_to([role], tracker, true, false).map(&:id)
    assert_equal [2, 3, 5], status.find_new_statuses_allowed_to([role], tracker, true, false).map(&:id)

    assert_equal [2, 4, 5], status.new_statuses_allowed_to([role], tracker, false, true).map(&:id)
    assert_equal [2, 4, 5], status.find_new_statuses_allowed_to([role], tracker, false, true).map(&:id)

    assert_equal [2, 3, 4, 5], status.new_statuses_allowed_to([role], tracker, true, true).map(&:id)
    assert_equal [2, 3, 4, 5], status.find_new_statuses_allowed_to([role], tracker, true, true).map(&:id)
  end

  def test_update_done_ratios_with_issue_done_ratio_set_to_issue_field_should_change_nothing
    IssueStatus.find(1).update_attribute(:default_done_ratio, 50)

    with_settings :issue_done_ratio => 'issue_field' do
      IssueStatus.update_issue_done_ratios
      assert_equal 0, Issue.count(:conditions => {:done_ratio => 50})
    end
  end

  def test_update_done_ratios_with_issue_done_ratio_set_to_issue_status_should_update_issues
    IssueStatus.find(1).update_attribute(:default_done_ratio, 50)

    with_settings :issue_done_ratio => 'issue_status' do
      IssueStatus.update_issue_done_ratios
      issues = Issue.all(:conditions => {:status_id => 1})
      assert_equal [50], issues.map {|issue| issue.read_attribute(:done_ratio)}.uniq
    end
  end

  def test_sorted_scope
    assert_equal IssueStatus.all.sort, IssueStatus.sorted.all
  end

  def test_named_scope
    status = IssueStatus.named("resolved").first
    assert_not_nil status
    assert_equal "Resolved", status.name
  end
end