tests/test-extensions-afterloaded.t
changeset 33030 80a5d237a4ae
child 38105 d1a49a94c324
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-extensions-afterloaded.t	Fri Jun 23 10:59:05 2017 -0700
@@ -0,0 +1,113 @@
+Test the extensions.afterloaded() function
+
+  $ cat > foo.py <<EOF
+  > from mercurial import extensions
+  > def uisetup(ui):
+  >     ui.write("foo.uisetup\\n")
+  >     ui.flush()
+  >     def bar_loaded(loaded):
+  >         ui.write("foo: bar loaded: %r\\n" % (loaded,))
+  >         ui.flush()
+  >     extensions.afterloaded('bar', bar_loaded)
+  > EOF
+  $ cat > bar.py <<EOF
+  > def uisetup(ui):
+  >     ui.write("bar.uisetup\\n")
+  >     ui.flush()
+  > EOF
+  $ basepath=`pwd`
+
+  $ hg init basic
+  $ cd basic
+  $ echo foo > file
+  $ hg add file
+  $ hg commit -m 'add file'
+
+  $ echo '[extensions]' >> .hg/hgrc
+  $ echo "foo = $basepath/foo.py" >> .hg/hgrc
+  $ echo "bar = $basepath/bar.py" >> .hg/hgrc
+  $ hg log -r. -T'{rev}\n'
+  foo.uisetup
+  foo: bar loaded: True
+  bar.uisetup
+  0
+
+Test afterloaded with the opposite extension load order
+
+  $ cd ..
+  $ hg init basic_reverse
+  $ cd basic_reverse
+  $ echo foo > file
+  $ hg add file
+  $ hg commit -m 'add file'
+
+  $ echo '[extensions]' >> .hg/hgrc
+  $ echo "bar = $basepath/bar.py" >> .hg/hgrc
+  $ echo "foo = $basepath/foo.py" >> .hg/hgrc
+  $ hg log -r. -T'{rev}\n'
+  bar.uisetup
+  foo.uisetup
+  foo: bar loaded: True
+  0
+
+Test the extensions.afterloaded() function when the requested extension is not
+loaded
+
+  $ cd ..
+  $ hg init notloaded
+  $ cd notloaded
+  $ echo foo > file
+  $ hg add file
+  $ hg commit -m 'add file'
+
+  $ echo '[extensions]' >> .hg/hgrc
+  $ echo "foo = $basepath/foo.py" >> .hg/hgrc
+  $ hg log -r. -T'{rev}\n'
+  foo.uisetup
+  foo: bar loaded: False
+  0
+
+Test the extensions.afterloaded() function when the requested extension is not
+configured but fails the minimum version check
+
+  $ cd ..
+  $ cat > minvers.py <<EOF
+  > minimumhgversion = '9999.9999'
+  > def uisetup(ui):
+  >     ui.write("minvers.uisetup\\n")
+  >     ui.flush()
+  > EOF
+  $ hg init minversion
+  $ cd minversion
+  $ echo foo > file
+  $ hg add file
+  $ hg commit -m 'add file'
+
+  $ echo '[extensions]' >> .hg/hgrc
+  $ echo "foo = $basepath/foo.py" >> .hg/hgrc
+  $ echo "bar = $basepath/minvers.py" >> .hg/hgrc
+  $ hg log -r. -T'{rev}\n'
+  (third party extension bar requires version 9999.9999 or newer of Mercurial; disabling)
+  foo.uisetup
+  foo: bar loaded: False
+  0
+
+Test the extensions.afterloaded() function when the requested extension is not
+configured but fails the minimum version check, using the opposite load order
+for the two extensions.
+
+  $ cd ..
+  $ hg init minversion_reverse
+  $ cd minversion_reverse
+  $ echo foo > file
+  $ hg add file
+  $ hg commit -m 'add file'
+
+  $ echo '[extensions]' >> .hg/hgrc
+  $ echo "bar = $basepath/minvers.py" >> .hg/hgrc
+  $ echo "foo = $basepath/foo.py" >> .hg/hgrc
+  $ hg log -r. -T'{rev}\n'
+  (third party extension bar requires version 9999.9999 or newer of Mercurial; disabling)
+  foo.uisetup
+  foo: bar loaded: False
+  0