From 8f636b9b21df20ad38db8d3ce1dbcaa227e6b6a2 Mon Sep 17 00:00:00 2001
From: Toshi MARUYAMA <marutosijp2@yahoo.co.jp>
Date: Fri, 18 Feb 2011 05:55:45 +0000
Subject: [PATCH] scm: mercurial: unit app test for latest_changesets SQL
 "like" special character '%' and '_'.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4870 e93f8b46-1217-0410-a6f0-8f06a7374b81
---
 test/unit/repository_mercurial_test.rb | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/test/unit/repository_mercurial_test.rb b/test/unit/repository_mercurial_test.rb
index df37cf073..384ba42df 100644
--- a/test/unit/repository_mercurial_test.rb
+++ b/test/unit/repository_mercurial_test.rb
@@ -171,6 +171,14 @@ class RepositoryMercurialTest < ActiveSupport::TestCase
       @repository.reload
       changesets = @repository.latest_changesets('README', nil)
       assert_equal %w|8 6 1 0|, changesets.collect(&:revision)
+
+      path = 'sql_escape/percent%dir/percent%file1.txt'
+      changesets = @repository.latest_changesets(path, nil)
+      assert_equal %w|11 10 9|, changesets.collect(&:revision)
+
+      path = 'sql_escape/underscore_dir/understrike_file.txt'
+      changesets = @repository.latest_changesets(path, nil)
+      assert_equal %w|12 9|, changesets.collect(&:revision)
     end
 
     def test_latest_changesets_with_dirpath
@@ -178,6 +186,14 @@ class RepositoryMercurialTest < ActiveSupport::TestCase
       @repository.reload
       changesets = @repository.latest_changesets('images', nil)
       assert_equal %w|1 0|, changesets.collect(&:revision)
+
+      path = 'sql_escape/percent%dir'
+      changesets = @repository.latest_changesets(path, nil)
+      assert_equal %w|13 11 10 9|, changesets.collect(&:revision)
+
+      path = 'sql_escape/underscore_dir'
+      changesets = @repository.latest_changesets(path, nil)
+      assert_equal %w|13 12 9|, changesets.collect(&:revision)
     end
   else
     puts "Mercurial test repository NOT FOUND. Skipping unit tests !!!"
-- 
GitLab