Guest User

Untitled

a guest
Nov 18th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.27 KB | None | 0 0
  1. WHAT I GOT
  2. 'use strict';
  3.  
  4. var dom = {
  5. // TODO: fill in library's API ...
  6.  
  7. create: function(tag_name, attrs){
  8.  
  9. },
  10.  
  11. // Attributes getter / setter
  12. attr: function(elem, name, value){
  13.  
  14. },
  15.  
  16. // Append element as last child
  17. append: function(elem, child){
  18.  
  19. },
  20.  
  21. // Prepend element as first child
  22. prepend: function(elem, child){
  23.  
  24. },
  25.  
  26. // Detach element from dom
  27. remove: function(elem){
  28.  
  29. }
  30. }
  31.  
  32. WHAT I DID
  33. 'use strict';
  34.  
  35. var dom = {
  36. // TODO: fill in library's API ...
  37.  
  38. create: function(tag_name, attrs){
  39. var temp = document.createElement(tag_name);
  40. for(var key in attrs)
  41. {
  42. temp.setAttribute(key, attrs[key]);
  43. }
  44. return temp;
  45. },
  46.  
  47. // Attributes getter / setter
  48. attr: function(elem, name, value){
  49. if(!value) return elem.getAttribute(name);
  50. elem.setAttribute(name,value);
  51. return elem;
  52. },
  53.  
  54. // Append element as last child
  55. append: function(elem, child){
  56. elem.appendChild(child);
  57. },
  58.  
  59. // Prepend element as first child
  60. prepend: function(elem, child){
  61. elem.prepend(child);
  62. },
  63.  
  64. // Detach element from dom
  65. remove: function(elem){
  66. var par = elem.parentNode;
  67. par.removeChild(elem);
  68. }
  69. }
  70. WHAT I THINK IS A TEST
  71. 'use strict';
  72.  
  73. describe('Dom library', function () {
  74.  
  75.  
  76. it('should allow to create dom elements', function () {
  77. var div = dom.create('div');
  78.  
  79. expect(div instanceof window.Element).toBeTruthy();
  80. expect(div.tagName).toBe('DIV');
  81. });
  82.  
  83. it('should allow to create dom elements with attributes', function () {
  84. var div = dom.create('div',{
  85. test:'test_value'
  86. });
  87.  
  88. expect(div instanceof window.Element).toBeTruthy();
  89. expect(div.getAttribute('test')).toBe('test_value');
  90. });
  91.  
  92. it('should allow to append elements', function () {
  93. var div = document.createElement('div');
  94. div.innerHTML = '<div id="one"></div>
  95. <div id="two"></div>
  96. <div id="three"></div>';
  97.  
  98. var appendee = document.createElement('div');
  99. dom.append(div, appendee)
  100. expect(div.children[div.children.length - 1]).toBe(appendee);
  101. });
  102.  
  103. it('should allow to prepend elements', function () {
  104. var div = document.createElement('div');
  105. div.innerHTML = '<div id="one"></div>
  106. <div id="two"></div>
  107. <div id="three"></div>';
  108.  
  109. var prependee = document.createElement('div');
  110. dom.prepend(div, prependee)
  111. expect(div.children[0]).toBe(prependee);
  112. });
  113.  
  114. it('should allow to detach elements', function () {
  115. var div = document.createElement('div');
  116. div.innerHTML = '<div id="one"></div>
  117. <div id="two"></div>
  118. <div id="three"></div>';
  119.  
  120. var target = div.children[0];
  121. var detached = dom.remove(target)
  122. expect(target).toBe(detached);
  123. expect(div.children[0]).not.toBe(target);
  124. });
  125.  
  126. it('should allow get element attribute', function () {
  127. var div = document.createElement('div');
  128. div.setAttribute("test","test_value");
  129.  
  130. expect(dom.attr(div, 'test')).toEqual('test_value');
  131. });
  132.  
  133. it('should allow set element attribute', function () {
  134. var div = document.createElement('div');
  135. dom.attr(div, 'test', 'test_value');
  136.  
  137. expect(div.getAttribute('test')).toEqual('test_value');
  138. });
Add Comment
Please, Sign In to add comment