if exists('g:user_zen_settings') let s:old_user_zen_settings = g:user_zen_settings unlet! g:user_zen_settings endif so plugin/zencoding.vim function! s:testExpandAbbr() unlet! testgroups let testgroups = eval(join(filter(split(substitute(join(readfile(expand('%')), "\n"), '.*\nfinish\n', '', ''), '\n', 1), "v:val !~ '^\"'"))) let failed = 0 for testgroup in testgroups echohl MatchParen | echon "[" testgroup.category."]\n" | echohl None let tests = testgroup.tests let start = reltime() for n in range(len(tests)) let testtitle = tests[n].name let testtitle = len(testtitle) < 57 ? (testtitle.repeat(' ', 57-len(testtitle))) : strpart(testtitle, 0, 57) echohl ModeMsg | echon "testing #".printf("%03d", n+1) echohl None | echon ": ".testtitle." ... " unlet! res | let res = zencoding#ExpandWord(tests[n].query, tests[n].type, 0) if res == tests[n].result echohl Title | echon "ok\n" | echohl None else echohl WarningMsg | echon "ng\n" | echohl None echohl ErrorMsg | echo "failed test #".(n+1) | echohl None set more echo " expect:".tests[n].result echo " got:".res echo "" let failed = 1 break endif endfor if failed break endif echo "past:".reltimestr(reltime(start))."\n" endfor endfunction function! s:testImageSize() silent! 1new silent! call setline(1, "img[src=http://mattn.kaoriya.net/images/logo.png]") silent! let start = reltime() exe "silent! normal A\,\i" let time = reltimestr(reltime(start)) let line = getline(1) silent! bw! echohl MatchParen | echon "[image size]\n" | echohl None echohl ModeMsg | echon "testing image size" . repeat(' ', 54) . '... ' | echohl None let expect = '' if line == expect echohl Title | echon "ok\n" | echohl None echo "past:".time."\n" echo else echohl WarningMsg | echon "ng\n" | echohl None echohl ErrorMsg | echo "failed test image size" | echohl None echo " expect:".expect echo " got:".line echo "" endif endfunction function! s:testMoveNextPrev() silent! 1new silent! call setline(1, "") silent! call setline(2, "") silent! call setline(3, "") let start = reltime() exe "silent! normal gg0\n\n\n" let pos = getpos(".") let line = substitute(getline("."), '\n", }, { 'name': "div#wrapper", 'query': "div#wrapper", 'type': "html", 'result': "
\n", }, { 'name': "div.box", 'query': "div.box", 'type': "html", 'result': "
\n", }, { 'name': "a[title=TITLE]", 'query': "a[title=TITLE]", 'type': "html", 'result': "\n", }, { 'name': "div#wrapper.box", 'query': "div#wrapper.box", 'type': "html", 'result': "
\n", }, { 'name': "div#wrapper.box.current", 'query': "div#wrapper.box.current", 'type': "html", 'result': "
\n", }, { 'name': "div#wrapper.box.current[title=TITLE rel]", 'query': "div#wrapper.box.current[title=TITLE rel]", 'type': "html", 'result': "
\n", }, { 'name': "div#main+div#sub", 'query': "div#main+div#sub", 'type': "html", 'result': "
\n
\n", }, { 'name': "div#main>div#sub", 'query': "div#main>div#sub", 'type': "html", 'result': "
\n\t
\n
\n", }, { 'name': "html:xt>div#header>div#logo+ul#nav>li.item-$*5>a", 'query': "html:xt>div#header>div#logo+ul#nav>li.item-$*5>a", 'type': "html", 'result': "\n\n\n\t\n\t\n\n\n\t
\n\t\t
\n\t\t
    \n\t\t\t
  • \n\t\t\t\t\n\t\t\t
  • \n\t\t\t
  • \n\t\t\t\t\n\t\t\t
  • \n\t\t\t
  • \n\t\t\t\t\n\t\t\t
  • \n\t\t\t
  • \n\t\t\t\t\n\t\t\t
  • \n\t\t\t
  • \n\t\t\t\t\n\t\t\t
  • \n\t\t
\n\t
\n\t\n\n", }, { 'name': "ol>li*2", 'query': "ol>li*2", 'type': "html", 'result': "
    \n\t
  1. \n\t
  2. \n
\n", }, { 'name': "a", 'query': "a", 'type': "html", 'result': "\n", }, { 'name': "obj", 'query': "obj", 'type': "html", 'result': "\n", }, { 'name': "cc:ie6>p+blockquote#sample$.so.many.classes*2", 'query': "cc:ie6>p+blockquote#sample$.so.many.classes*2", 'type': "html", 'result': "", }, { 'name': "tm>if>div.message", 'query': "tm>if>div.message", 'type': "html", 'result': "\n\t\n\t\t
\n\t
\n
\n", }, { 'name': "html:4t>div#wrapper>div#header+div#contents+div#footer", 'query': "html:4t>div#wrapper>div#header+div#contents+div#footer", 'type': "html", 'result': "\n\n\n\t\n\t\n\n\n\t
\n\t\t
\n\t\t
\n\t\t
\n\t
\n\t\n\n", }, { 'name': "a[href=http://www.google.com/].foo#hoge", 'query': "a[href=http://www.google.com/].foo#hoge", 'type': "html", 'result': "\n", }, { 'name': "a[href=http://www.google.com/]{Google}", 'query': "a[href=http://www.google.com/]{Google}", 'type': "html", 'result': "Google\n", }, { 'name': "{ZenCoding}", 'query': "{ZenCoding}", 'type': "html", 'result': "ZenCoding", }, { 'name': "a+b", 'query': "a+b", 'type': "html", 'result': "\n\n", }, { 'name': "a>b>cb>c\n", }, { 'name': "a>b>c<b>c<\n\n", }, { 'name': "blockquote>b>c<b>c<\n\t\n\n\n", }, { 'name': "a[href=foo][class=bar]", 'query': "a[href=foo][class=bar]", 'type': "html", 'result': "\n", }, { 'name': "a[a=b][b=c=d][e]{foo}*2", 'query': "a[a=b][b=c=d][e]{foo}*2", 'type': "html", 'result': "foo\nfoo\n", }, { 'name': "a[a=b][b=c=d][e]*2{foo}", 'query': "a[a=b][b=c=d][e]*2{foo}", 'type': "html", 'result': "\n\nfoo", }, { 'name': "a*2{foo}a", 'query': "a*2{foo}a", 'type': "html", 'result': "\n\nfoo\n", }, { 'name': "a{foo}*2>b", 'query': "a{foo}*2>b", 'type': "html", 'result': "foo\nfoo\n", }, { 'name': "a*2{foo}>b", 'query': "a*2{foo}>b", 'type': "html", 'result': "\n\nfoo", }, { 'name': "table>tr>td.name#foo+td*3", 'query': "table>tr>td.name#foo+td*3", 'type': "html", 'result': "\n\t\n\t\t\n\t\t\n\t\t\n\t\t\n\t\n
\n", }, { 'name': "div#header + div#footer", 'query': "div#header + div#footer", 'type': "html", 'result': "
\n
\n", }, { 'name': "#header + div#footer", 'query': "#header + div#footer", 'type': "html", 'result': "
\n
\n", }, { 'name': "#header > ul > li < p{Footer}", 'query': "#header > ul > li < p{Footer}", 'type': "html", 'result': "
\n\t
    \n\t\t
  • \n\t
\n\t

Footer

\n
\n", }, { 'name': "a#foo$$$*3", 'query': "a#foo$$$*3", 'type': "html", 'result': "\n\n\n", }, { 'name': "ul+", 'query': "ul+", 'type': "html", 'result': "
    \n\t
  • \n
\n", }, { 'name': "table+", 'query': "table+", 'type': "html", 'result': "\n\t\n\t\t\n\t\n
\n", }, { 'name': "#header>li<#content", 'query': "#header>li<#content", 'type': "html", 'result': "
\n\t
  • \n
    \n
    \n", }, { 'name': "(#header>li)<#content", 'query': "(#header>li)<#content", 'type': "html", 'result': "
    \n\t
  • \n
    \n
    \n", }, { 'name': "a>b>c<b>c<\n
    \n", }, { 'name': "(#header>h1)+#content+#footer", 'query': "(#header>h1)+#content+#footer", 'type': "html", 'result': "
    \n\t

    \n
    \n
    \n
    \n", }, { 'name': "(#header>h1)+(#content>(#main>h2+div#entry$.section*5>(h3>a)+div>p*3+ul+)+(#utilities))+(#footer>address)", 'query': "(#header>h1)+(#content>(#main>h2+div#entry$.section*5>(h3>a)+div>p*3+ul+)+(#utilities))+(#footer>address)", 'type': "html", 'result': "
    \n\t

    \n
    \n
    \n\t
    \n\t\t

    \n\t\t
    \n\t\t\t

    \n\t\t\t\t\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t\t\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t\t\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t\t\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t\t
    \n\t\t\t

    \n\t\t\t\t\n\t\t\t

    \n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t

    \n\t\t\t\t
      \n\t\t\t\t\t
    • \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t
    \n\t
    \n
    \n
    \n\t
    \n
    \n", }, { 'name': "(div>(ul*2)*2)+(#utilities)", 'query': "(div>(ul*2)*2)+(#utilities)", 'type': "html", 'result': "
    \n\t
      \n\t
        \n\t
          \n\t
            \n
            \n
            \n", }, { 'name': "table>(tr>td*3)*4", 'query': "table>(tr>td*3)*4", 'type': "html", 'result': "\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n\t\n\t\t\n\t\t\n\t\t\n\t\n
            \n", }, { 'name': "(((a#foo+a#bar)*2)*3)", 'query': "(((a#foo+a#bar)*2)*3)", 'type': "html", 'result': "\n\n\n\n\n\n\n\n\n\n\n\n", }, { 'name': "div#box$*3>h3+p*2", 'query': "div#box$*3>h3+p*2", 'type': "html", 'result': "
            \n\t

            \n\t

            \n\t

            \n
            \n
            \n\t

            \n\t

            \n\t

            \n
            \n
            \n\t

            \n\t

            \n\t

            \n
            \n" }, { 'name': "div#box.foo$$$.bar$$$*3", 'query': "div#box.foo$$$.bar$$$*3", 'type': "html", 'result': "
            \n
            \n
            \n", }, { 'name': "div#box$*3>h3+p.bar*2|e", 'query': "div#box$*3>h3+p.bar*2|e", 'type': "html", 'result': "<div id=\"box1\">\n\t&lt;h3&gt;&lt;/h3&gt;\n\t&lt;p class=\"bar\"&gt;&lt;/p&gt;\n\t&lt;p class=\"bar\"&gt;&lt;/p&gt;\n</div>\n<div id=\"box2\">\n\t&lt;h3&gt;&lt;/h3&gt;\n\t&lt;p class=\"bar\"&gt;&lt;/p&gt;\n\t&lt;p class=\"bar\"&gt;&lt;/p&gt;\n</div>\n<div id=\"box3\">\n\t&lt;h3&gt;&lt;/h3&gt;\n\t&lt;p class=\"bar\"&gt;&lt;/p&gt;\n\t&lt;p class=\"bar\"&gt;&lt;/p&gt;\n</div>\n", }, { 'name': "div>div#page>p.title+p|c", 'query': "div>div#page>p.title+p|c", 'type': "html", 'result': "
            \n\t\n\t
            \n\t\t\n\t\t

            \n\t\t\n\t\t

            \n\t
            \n\t\n
            \n", }, { 'name': "link:css", 'query': "link:css", 'type': "html", 'result': "\n", }, { 'name': "a[title=\"Hello', world\" rel]", 'query': "a[title=\"Hello', world\" rel]", 'type': "html", 'result': "\n", }, { 'name': "div>a#foo{bar}", 'query': "div>a#foo{bar}", 'type': "html", 'result': "
            \n\tbar\n
            \n", }, { 'name': ".content{Hello!}", 'query': ".content{Hello!}", 'type': "html", 'result': "
            Hello!
            \n", }, ], }, { 'category': 'css', 'tests': [ { 'name': "@i", 'query': "@i", 'type': "css", 'result': "@import url();", }, { 'name': "fs:n", 'query': "fs:n", 'type': "css", 'result': "font-style: normal;", }, { 'name': "fl:l|fc", 'query': "fl:l|fc", 'type': "css", 'result': "float: left;", }, { 'name': "bg+", 'query': "bg+", 'type': "css", 'result': "background: #FFF url() 0 0 no-repeat;", }, ], }, { 'category': 'haml', 'tests': [ { 'name': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}", 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}", 'type': "haml", 'result': "
            \n\t

            \n\t
              \n\t\t
            • baz
            • \n\t\t
            • baz
            • \n\t\t
            • baz
            • \n\t
            \n
            \n", }, { 'name': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}|haml", 'query': "div>p+ul#foo>li.bar$[foo=bar][bar=baz]*3>{baz}|haml", 'type': "haml", 'result': "%div\n %p\n %ul#foo\n %li.bar1{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar2{ :foo => \"bar\", :bar => \"baz\" } baz\n %li.bar3{ :foo => \"bar\", :bar => \"baz\" } baz\n", }, { 'name': "a*3|haml", 'query': "a*3|haml", 'type': "haml", 'result': "%a{ :href => \"\" }\n%a{ :href => \"\" }\n%a{ :href => \"\" }\n", }, { 'name': ".content{Hello!}|haml", 'query': ".content{Hello!}|haml", 'type': "haml", 'result': "%div.content Hello!\n", }, ], }, { 'category': 'xsl', 'tests': [ { 'name': "vari", 'query': "vari", 'type': "xsl", 'result': "\n", }, { 'name': "ap>wp", 'query': "ap>wp", 'type': "xsl", 'result': "\n\t\n\n", }, ], }, { 'category': 'xsd', 'tests': [ { 'name': "w3c", 'query': "xsd:w3c", 'type': "xsd", 'result': "\n\n\t\n", }, ], }, { 'category': 'mustache', 'tests': [ { 'name': "div#{{foo}}", 'query': "div#{{foo}}", 'type': "mustache", 'result': "
            \n", }, { 'name': "div.{{foo}}", 'query': "div.{{foo}}", 'type': "mustache", 'result': "
            \n", }, ], }, ] " vim:set et: