selector.html 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
  6. <link rel="stylesheet" href="test.css">
  7. <title>Zepto Selector unit tests</title>
  8. <script src="../vendor/evidence.js"></script>
  9. <script src="evidence_runner.js"></script>
  10. <script src="../src/zepto.js"></script>
  11. <script src="../src/selector.js"></script>
  12. <script src="../src/ie.js"></script>
  13. </head>
  14. <body>
  15. <h1>Zepto Selector unit tests</h1>
  16. <p id="results">
  17. Running… see browser console for results
  18. </p>
  19. <div id="fixtures">
  20. <ul id=list><li>one</li><li>two</li></ul>
  21. <div class=visibility id=vis>look at me!</div>
  22. <div class=visibility id=invis style="display:none">can't see me</div>
  23. <ol id=child class=test>
  24. <li><span>child1</span></li>
  25. <li><span>child2</span>
  26. <ul>
  27. <li><span>child3</span></li>
  28. <li><span>child4</span></li>
  29. </ul>
  30. </li>
  31. </ol>
  32. </div><!-- fixtures -->
  33. <script>
  34. (function(){
  35. Evidence('SelectorTest', {
  36. testFirst: function(t) {
  37. var li = $('#list li:first')
  38. t.assertEqual(1, li.size())
  39. t.assertEqual('one', li.text())
  40. t.assertEqual('two', $('#list li:eq(1)').text())
  41. },
  42. testLast: function(t) {
  43. var li = $('#list li:last')
  44. t.assertEqual(1, li.size())
  45. t.assertEqual('two', li.text())
  46. },
  47. testParent: function(t) {
  48. var list = $('#list li:parent')
  49. t.assertEqual(1, list.size())
  50. t.assertEqual('list', list.attr('id'))
  51. },
  52. testContains: function(t) {
  53. t.assertEqual('two', $('#list li:contains("two")').text())
  54. },
  55. testVisibility: function(t) {
  56. t.assertEqual('vis', $('.visibility:visible').attr('id'))
  57. t.assertEqual('invis', $('.visibility:hidden').attr('id'))
  58. },
  59. testIs: function(t) {
  60. t.assert($('#list').is('ul'))
  61. t.assert($('#vis').is(':visible'))
  62. t.refute($('#invis').is(':visible'))
  63. },
  64. testChild: function(t) {
  65. var items = $('#child').find('> li'),
  66. results = items.map(function(){
  67. return $(this).find('> span').text()
  68. }).get()
  69. t.assertEqual('child1 child2', results.join(' '))
  70. t.assertEqual('test', $('#child').prop('class'))
  71. },
  72. testChildHas: function(t) {
  73. var items = $('#child').find('> li:has(ul)'),
  74. results = items.map(function(){
  75. return $(this).find('> span').text()
  76. }).get()
  77. t.assertEqual('child2', results.join(' '))
  78. },
  79. testEmptyHref: function(t) {
  80. var result, el = $('<div><a href="#">one</a><a href="#">two</a></div>')
  81. result = el.find('a[href=#]')
  82. t.assertEqual('one two', result.map(function(){ return $(this).text() }).get().join(' '))
  83. }
  84. })
  85. })()
  86. </script>
  87. </body>
  88. </html>