Some tests for Tkinter.Text.search
diff --git a/Lib/lib-tk/test/test_tkinter/__init__.py b/Lib/lib-tk/test/test_tkinter/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Lib/lib-tk/test/test_tkinter/__init__.py
diff --git a/Lib/lib-tk/test/test_tkinter/test_text.py b/Lib/lib-tk/test/test_tkinter/test_text.py
new file mode 100644
index 0000000..009b8de
--- /dev/null
+++ b/Lib/lib-tk/test/test_tkinter/test_text.py
@@ -0,0 +1,39 @@
+import unittest
+import Tkinter
+from test.test_support import requires, run_unittest
+from ttk import setup_master
+
+requires('gui')
+
+class TextTest(unittest.TestCase):
+
+    def setUp(self):
+        self.root = setup_master()
+        self.text = Tkinter.Text(self.root)
+
+    def tearDown(self):
+        self.text.destroy()
+
+
+    def test_search(self):
+        text = self.text
+
+        # pattern and index are obligatory arguments.
+        self.failUnlessRaises(Tkinter.TclError, text.search, None, '1.0')
+        self.failUnlessRaises(Tkinter.TclError, text.search, 'a', None)
+        self.failUnlessRaises(Tkinter.TclError, text.search, None, None)
+
+        # Invalid text index.
+        self.failUnlessRaises(Tkinter.TclError, text.search, '', 0)
+
+        # Check if we are getting the indices as strings -- you are likely
+        # to get Tcl_Obj under Tk 8.5 if Tkinter doesn't convert it.
+        text.insert('1.0', 'hi-test')
+        self.failUnlessEqual(text.search('-test', '1.0', 'end'), '1.2')
+        self.failUnlessEqual(text.search('test', '1.0', 'end'), '1.3')
+
+
+tests_gui = (TextTest, )
+
+if __name__ == "__main__":
+    run_unittest(*tests_gui)
diff --git a/Lib/test/regrtest.py b/Lib/test/regrtest.py
index 5c91dc3..955e551 100755
--- a/Lib/test/regrtest.py
+++ b/Lib/test/regrtest.py
@@ -1047,6 +1047,7 @@
         test_socket_ssl
         test_socketserver
         test_tcl
+        test_tk
         test_ttk_guionly
         test_ttk_textonly
         test_timeout
@@ -1066,6 +1067,7 @@
         test_kqueue
         test_ossaudiodev
         test_tcl
+        test_tk
         test_ttk_guionly
         test_ttk_textonly
         test_zipimport
@@ -1084,6 +1086,7 @@
         test_ossaudiodev
         test_pep277
         test_tcl
+        test_tk
         test_ttk_guionly
         test_ttk_textonly
         test_multiprocessing
@@ -1102,6 +1105,7 @@
         test_ossaudiodev
         test_pep277
         test_tcl
+        test_tk
         test_ttk_guionly
         test_ttk_textonly
         test_multiprocessing
diff --git a/Lib/test/test_tk.py b/Lib/test/test_tk.py
new file mode 100644
index 0000000..5d79a3c
--- /dev/null
+++ b/Lib/test/test_tk.py
@@ -0,0 +1,25 @@
+import os
+import sys
+from _tkinter import TclError
+from test import test_support
+
+this_dir = os.path.dirname(os.path.abspath(__file__))
+lib_tk_test = os.path.abspath(os.path.join(this_dir, os.path.pardir,
+    'lib-tk', 'test'))
+if lib_tk_test not in sys.path:
+    sys.path.append(lib_tk_test)
+
+import runtktests
+
+def test_main(enable_gui=False):
+    if enable_gui:
+        if test_support.use_resources is None:
+            test_support.use_resources = ['gui']
+        elif 'gui' not in test_support.use_resources:
+            test_support.use_resources.append('gui')
+
+    test_support.run_unittest(
+            *runtktests.get_tests(text=False, packages=['test_tkinter']))
+
+if __name__ == '__main__':
+    test_main(enable_gui=True)