| 277 | 
  277 | 
  
        assert_visibility_match user, issues 
   | 
  | 278 | 
  278 | 
  
      end 
   | 
  | 279 | 
  279 | 
  
    
   | 
   | 
  280 | 
  
      def test_visible_scope_for_non_member_with_own_watch_issues_visibility 
   | 
   | 
  281 | 
  
        #Role.non_member.add_permission! :view_issues 
   | 
   | 
  282 | 
  
        Role.non_member.update_attribute :issues_visibility, 'own_watch' 
   | 
   | 
  283 | 
  
        user = User.find(9) 
   | 
   | 
  284 | 
  
        assert user.projects.empty? 
   | 
   | 
  285 | 
  
        own_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => user.id, :subject => 'Issue by non member') 
   | 
   | 
  286 | 
  
        watching_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue watched by non member') 
   | 
   | 
  287 | 
  
        watching_issue.add_watcher(user) 
   | 
   | 
  288 | 
  
    
   | 
   | 
  289 | 
  
        #assert_equal true, own_issue.visible?(user) 
   | 
   | 
  290 | 
  
        #assert_equal true, watching_issue.visible?(user) 
   | 
   | 
  291 | 
  
        assert_visibility_match user, [own_issue, watching_issue] 
   | 
   | 
  292 | 
  
      end 
   | 
   | 
  293 | 
  
    
   | 
   | 
  294 | 
  
      def test_visible_scope_for_non_member_with_own_watch_contributed_issues_visibility 
   | 
   | 
  295 | 
  
        #Role.non_member.add_permission! :view_issues 
   | 
   | 
  296 | 
  
        Role.non_member.update_attribute :issues_visibility, 'own_watch_contributed' 
   | 
   | 
  297 | 
  
        user = User.find(9) 
   | 
   | 
  298 | 
  
        assert user.projects.empty? 
   | 
   | 
  299 | 
  
        own_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => user.id, :subject => 'Issue by non member') 
   | 
   | 
  300 | 
  
        watching_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue watched by non member') 
   | 
   | 
  301 | 
  
        watching_issue.add_watcher(user) 
   | 
   | 
  302 | 
  
        watching_issue.reload 
   | 
   | 
  303 | 
  
        contributed_issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue contributed by non member') 
   | 
   | 
  304 | 
  
        journal = contributed_issue.init_journal(user) 
   | 
   | 
  305 | 
  
        journal.notes = 'journal notes' 
   | 
   | 
  306 | 
  
        journal.save! 
   | 
   | 
  307 | 
  
    
   | 
   | 
  308 | 
  
        #assert_equal true, own_issue.visible?(user) 
   | 
   | 
  309 | 
  
        #assert_equal true, watching_issue.visible?(user) 
   | 
   | 
  310 | 
  
        #assert_equal true, contributed_issue.visible?(user) 
   | 
   | 
  311 | 
  
        assert_visibility_match user, [own_issue, watching_issue, contributed_issue] 
   | 
   | 
  312 | 
  
      end 
   | 
   | 
  313 | 
  
    
   | 
  | 280 | 
  314 | 
  
      def test_visible_scope_for_non_member_without_view_issues_permissions 
   | 
  | 281 | 
  315 | 
  
        # Non member user should not see issues without permission 
   | 
  | 282 | 
  316 | 
  
        Role.non_member.remove_permission!(:view_issues) 
   | 
  | ... | ... |  | 
  | 331 | 
  365 | 
  
          :assigned_to => user.groups.first, 
   | 
  | 332 | 
  366 | 
  
          :is_private => true) 
   | 
  | 333 | 
  367 | 
  
    
   | 
  | 334 | 
   | 
  
        Role.find(2).update_attribute :issues_visibility, 'default' 
   | 
  | 335 | 
   | 
  
        issues = Issue.visible(User.find(8)).to_a 
   | 
  | 336 | 
   | 
  
        assert issues.any? 
   | 
  | 337 | 
   | 
  
        assert issues.include?(issue) 
   | 
   | 
  368 | 
  
        ['default', 'own', 'own_watch', 'own_watch_contributed'].each do |issue_visibility| 
   | 
   | 
  369 | 
  
          Role.find(2).update_attribute :issues_visibility, issue_visibility 
   | 
   | 
  370 | 
  
          issues = Issue.visible(User.find(8)).to_a 
   | 
   | 
  371 | 
  
          assert issues.any? 
   | 
   | 
  372 | 
  
          assert_include issue, issues 
   | 
   | 
  373 | 
  
        end 
   | 
   | 
  374 | 
  
      end 
   | 
  | 338 | 
  375 | 
  
    
   | 
  | 339 | 
   | 
  
        Role.find(2).update_attribute :issues_visibility, 'own' 
   | 
  | 340 | 
   | 
  
        issues = Issue.visible(User.find(8)).to_a 
   | 
   | 
  376 | 
  
      def test_visible_scope_for_non_member_and_watcher_should_return_watching_issues 
   | 
   | 
  377 | 
  
        user = User.find(9) 
   | 
   | 
  378 | 
  
        assert user.projects.empty? 
   | 
   | 
  379 | 
  
        Role.non_member.add_permission!(:view_issues) 
   | 
   | 
  380 | 
  
    
   | 
   | 
  381 | 
  
        issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue visible to watcher', :is_private => true) 
   | 
   | 
  382 | 
  
        issue.add_watcher(user) 
   | 
   | 
  383 | 
  
    
   | 
   | 
  384 | 
  
        ['own_watch', 'own_watch_contributed'].each do |issue_visibility| 
   | 
   | 
  385 | 
  
          Role.non_member.update_attribute :issues_visibility, issue_visibility 
   | 
   | 
  386 | 
  
          issues = Issue.visible(user).to_a 
   | 
   | 
  387 | 
  
          assert issues.any? 
   | 
   | 
  388 | 
  
          assert_include issue, issues 
   | 
   | 
  389 | 
  
        end 
   | 
   | 
  390 | 
  
      end 
   | 
   | 
  391 | 
  
    
   | 
   | 
  392 | 
  
      def test_visible_scope_for_non_member_and_contributer_should_return_contributing_issues 
   | 
   | 
  393 | 
  
        user = User.find(9) 
   | 
   | 
  394 | 
  
        assert user.projects.empty? 
   | 
   | 
  395 | 
  
        Role.non_member.add_permission!(:view_issues) 
   | 
   | 
  396 | 
  
    
   | 
   | 
  397 | 
  
        issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1, :subject => 'Issue visible to watcher', :is_private => true) 
   | 
   | 
  398 | 
  
        journal = issue.init_journal(user) 
   | 
   | 
  399 | 
  
        journal.notes = 'journal notes' 
   | 
   | 
  400 | 
  
        journal.save! 
   | 
   | 
  401 | 
  
    
   | 
   | 
  402 | 
  
        Role.non_member.update_attribute :issues_visibility, 'own_watch_contributed' 
   | 
   | 
  403 | 
  
        issues = Issue.visible(user).to_a 
   | 
  | 341 | 
  404 | 
  
        assert issues.any? 
   | 
  | 342 | 
  405 | 
  
        assert_include issue, issues 
   | 
  | 343 | 
  406 | 
  
      end 
   |