closure 1.2.701 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1566) hide show
  1. data/README.md +9 -8
  2. data/closure-compiler/README +1 -1
  3. data/closure-compiler/compiler.jar +0 -0
  4. data/docs/SCRIPT.md +142 -0
  5. data/docs/closure/Closure/BeanShell.html +335 -0
  6. data/docs/closure/Closure/Compiler/Compilation.html +636 -0
  7. data/docs/closure/Closure/Compiler/Error.html +116 -0
  8. data/docs/closure/Closure/Compiler.html +387 -0
  9. data/docs/closure/Closure/FileResponse.html +622 -0
  10. data/docs/closure/Closure/Goog.html +1251 -0
  11. data/docs/closure/Closure/Middleware.html +304 -0
  12. data/docs/closure/Closure/Script/NotFound.html +116 -0
  13. data/docs/closure/Closure/Script/RenderStackOverflow.html +116 -0
  14. data/docs/closure/Closure/Script.html +1083 -0
  15. data/docs/closure/Closure/Server.html +439 -0
  16. data/docs/closure/Closure/ShowExceptions.html +266 -0
  17. data/docs/closure/Closure/Sources.html +1272 -0
  18. data/docs/closure/Closure/Templates/Error.html +116 -0
  19. data/docs/closure/Closure/Templates.html +361 -0
  20. data/docs/closure/Closure.html +715 -0
  21. data/docs/closure/_index.html +289 -0
  22. data/docs/closure/class_list.html +47 -0
  23. data/docs/closure/css/common.css +1 -0
  24. data/docs/closure/css/full_list.css +53 -0
  25. data/docs/closure/css/style.css +320 -0
  26. data/{closure-library/LICENSE → docs/closure/file.LICENSE.html} +106 -16
  27. data/docs/closure/file.README.html +79 -0
  28. data/docs/closure/file_list.html +52 -0
  29. data/docs/closure/frames.html +13 -0
  30. data/docs/closure/index.html +79 -0
  31. data/docs/closure/js/app.js +205 -0
  32. data/docs/closure/js/full_list.js +150 -0
  33. data/docs/closure/js/jquery.js +16 -0
  34. data/docs/closure/method_list.html +486 -0
  35. data/docs/closure/top-level-namespace.html +103 -0
  36. data/docs/index.erb +26 -0
  37. data/externs/chrome_extensions.externs +968 -0
  38. data/{scripts/externs/jquery_1_4_2.externs → externs/jquery-1.3.2.externs} +39 -170
  39. data/externs/jquery-1.4.3.externs +1289 -0
  40. data/externs/jquery-1.4.4.externs +1302 -0
  41. data/externs/jquery-1.5.externs +1697 -0
  42. data/externs/jquery.externs +4 -0
  43. data/lib/closure/beanshell.rb +9 -21
  44. data/lib/closure/compiler.rb +247 -102
  45. data/lib/closure/engines.rb +50 -0
  46. data/lib/closure/goog.rb +122 -68
  47. data/lib/closure/script.rb +68 -54
  48. data/lib/closure/server.rb +10 -1
  49. data/lib/closure/show_exceptions.rb +30 -3
  50. data/lib/closure/sources.rb +26 -25
  51. data/lib/closure/templates.rb +79 -124
  52. data/lib/closure/version.rb +1 -1
  53. data/lib/closure.rb +64 -43
  54. data/lib/shim.jar +0 -0
  55. data/scripts/config.ru +25 -0
  56. data/scripts/hello/compiler.js.erb +48 -0
  57. data/scripts/hello/compiler_build.js +5 -0
  58. data/scripts/hello/compiler_build.map +752 -0
  59. data/scripts/hello/compiler_debug.js +125 -0
  60. data/scripts/hello/hello.js +11 -0
  61. data/scripts/hello/index.erb +11 -0
  62. data/scripts/hello/legume.js +20 -0
  63. data/scripts/hello/legume.soy +9 -0
  64. data/scripts/index.erb +45 -5
  65. data/scripts/jquery/compiler.js.erb +7 -0
  66. data/scripts/jquery/compiler_out.js +1 -0
  67. data/scripts/jquery/index.erb +25 -0
  68. data/scripts/jquery/jquery_test.js +8 -0
  69. data/scripts/modules/api.js +11 -0
  70. data/scripts/modules/api_init.js +8 -0
  71. data/scripts/modules/app.js +102 -0
  72. data/scripts/modules/app_init.js +33 -0
  73. data/scripts/modules/compiler.js.erb +34 -0
  74. data/scripts/modules/compiler_build.js +6 -0
  75. data/scripts/modules/compiler_build.map +12077 -0
  76. data/scripts/modules/compiler_build_api.js +1 -0
  77. data/scripts/modules/compiler_build_app.js +74 -0
  78. data/scripts/modules/compiler_build_settings.js +2 -0
  79. data/scripts/modules/compiler_debug.js +6 -0
  80. data/scripts/modules/compiler_debug_api.js +11 -0
  81. data/scripts/modules/compiler_debug_app.js +2870 -0
  82. data/scripts/modules/compiler_debug_settings.js +42 -0
  83. data/scripts/modules/index.erb +18 -0
  84. data/scripts/modules/settings.js +19 -0
  85. data/scripts/modules/settings_init.js +14 -0
  86. data/scripts/{demos/rails_ujs.erb → rails/index.erb} +14 -6
  87. data/scripts/{demos → rails}/rails_ujs.js +0 -40
  88. data/scripts/svn.erb +228 -0
  89. data/scripts/welcome.erb +78 -0
  90. metadata +101 -1507
  91. data/.gitignore +0 -6
  92. data/.yardopts +0 -3
  93. data/closure-library/AUTHORS +0 -12
  94. data/closure-library/README +0 -6
  95. data/closure-library/all_tests.html +0 -113
  96. data/closure-library/alltests.js +0 -16
  97. data/closure-library/closure/bin/build/closurebuilder.py +0 -257
  98. data/closure-library/closure/bin/build/depstree.py +0 -186
  99. data/closure-library/closure/bin/build/depstree_test.py +0 -127
  100. data/closure-library/closure/bin/build/depswriter.py +0 -197
  101. data/closure-library/closure/bin/build/jscompiler.py +0 -69
  102. data/closure-library/closure/bin/build/source.py +0 -86
  103. data/closure-library/closure/bin/build/source_test.py +0 -57
  104. data/closure-library/closure/bin/build/treescan.py +0 -78
  105. data/closure-library/closure/bin/calcdeps.py +0 -570
  106. data/closure-library/closure/bin/scopify.py +0 -211
  107. data/closure-library/closure/css/inlay/g-base.css +0 -82
  108. data/closure-library/closure/css/inlay/g-fixed.css +0 -158
  109. data/closure-library/closure/css/inlay/g-ratio.css +0 -253
  110. data/closure-library/closure/goog/array/array.js +0 -1300
  111. data/closure-library/closure/goog/array/array_test.html +0 -1524
  112. data/closure-library/closure/goog/asserts/asserts.js +0 -277
  113. data/closure-library/closure/goog/asserts/asserts_test.html +0 -163
  114. data/closure-library/closure/goog/async/conditionaldelay.js +0 -238
  115. data/closure-library/closure/goog/async/conditionaldelay_test.html +0 -227
  116. data/closure-library/closure/goog/async/delay.js +0 -174
  117. data/closure-library/closure/goog/async/delay_test.html +0 -148
  118. data/closure-library/closure/goog/async/throttle.js +0 -189
  119. data/closure-library/closure/goog/async/throttle_test.html +0 -102
  120. data/closure-library/closure/goog/base.js +0 -1471
  121. data/closure-library/closure/goog/base_test.html +0 -1166
  122. data/closure-library/closure/goog/bootstrap/webworkers.js +0 -37
  123. data/closure-library/closure/goog/color/alpha.js +0 -436
  124. data/closure-library/closure/goog/color/alpha_test.html +0 -234
  125. data/closure-library/closure/goog/color/color.js +0 -757
  126. data/closure-library/closure/goog/color/color_test.html +0 -645
  127. data/closure-library/closure/goog/color/names.js +0 -176
  128. data/closure-library/closure/goog/crypt/arc4.js +0 -141
  129. data/closure-library/closure/goog/crypt/arc4_test.html +0 -42
  130. data/closure-library/closure/goog/crypt/base64.js +0 -267
  131. data/closure-library/closure/goog/crypt/base64_test.html +0 -106
  132. data/closure-library/closure/goog/crypt/basen.js +0 -242
  133. data/closure-library/closure/goog/crypt/basen_test.html +0 -167
  134. data/closure-library/closure/goog/crypt/crypt.js +0 -103
  135. data/closure-library/closure/goog/crypt/crypt_test.html +0 -68
  136. data/closure-library/closure/goog/crypt/hash32.js +0 -184
  137. data/closure-library/closure/goog/crypt/hash32_test.html +0 -287
  138. data/closure-library/closure/goog/crypt/sha1.js +0 -238
  139. data/closure-library/closure/goog/crypt/sha1_test.html +0 -47
  140. data/closure-library/closure/goog/css/autocomplete.css +0 -43
  141. data/closure-library/closure/goog/css/bubble.css +0 -84
  142. data/closure-library/closure/goog/css/button.css +0 -38
  143. data/closure-library/closure/goog/css/charpicker.css +0 -201
  144. data/closure-library/closure/goog/css/checkbox.css +0 -38
  145. data/closure-library/closure/goog/css/colormenubutton.css +0 -25
  146. data/closure-library/closure/goog/css/colorpalette.css +0 -54
  147. data/closure-library/closure/goog/css/colorpicker-simplegrid.css +0 -50
  148. data/closure-library/closure/goog/css/combobox.css +0 -57
  149. data/closure-library/closure/goog/css/common.css +0 -41
  150. data/closure-library/closure/goog/css/css3button.css +0 -77
  151. data/closure-library/closure/goog/css/css3menubutton.css +0 -23
  152. data/closure-library/closure/goog/css/custombutton.css +0 -164
  153. data/closure-library/closure/goog/css/datepicker.css +0 -148
  154. data/closure-library/closure/goog/css/dialog.css +0 -72
  155. data/closure-library/closure/goog/css/dimensionpicker.css +0 -47
  156. data/closure-library/closure/goog/css/dragdropdetector.css +0 -48
  157. data/closure-library/closure/goog/css/editor/bubble.css +0 -73
  158. data/closure-library/closure/goog/css/editor/dialog.css +0 -66
  159. data/closure-library/closure/goog/css/editor/linkdialog.css +0 -36
  160. data/closure-library/closure/goog/css/editortoolbar.css +0 -225
  161. data/closure-library/closure/goog/css/filteredmenu.css +0 -30
  162. data/closure-library/closure/goog/css/filterobservingmenuitem.css +0 -25
  163. data/closure-library/closure/goog/css/flatbutton.css +0 -65
  164. data/closure-library/closure/goog/css/flatmenubutton.css +0 -63
  165. data/closure-library/closure/goog/css/hovercard.css +0 -51
  166. data/closure-library/closure/goog/css/hsvapalette.css +0 -231
  167. data/closure-library/closure/goog/css/hsvpalette.css +0 -179
  168. data/closure-library/closure/goog/css/imagelessbutton.css +0 -160
  169. data/closure-library/closure/goog/css/imagelessmenubutton.css +0 -23
  170. data/closure-library/closure/goog/css/inputdatepicker.css +0 -12
  171. data/closure-library/closure/goog/css/linkbutton.css +0 -26
  172. data/closure-library/closure/goog/css/menu.css +0 -27
  173. data/closure-library/closure/goog/css/menubutton.css +0 -169
  174. data/closure-library/closure/goog/css/menuitem.css +0 -96
  175. data/closure-library/closure/goog/css/menuseparator.css +0 -19
  176. data/closure-library/closure/goog/css/multitestrunner.css +0 -121
  177. data/closure-library/closure/goog/css/offline.css +0 -147
  178. data/closure-library/closure/goog/css/palette.css +0 -36
  179. data/closure-library/closure/goog/css/popupdatepicker.css +0 -17
  180. data/closure-library/closure/goog/css/roundedpanel.css +0 -29
  181. data/closure-library/closure/goog/css/roundedtab.css +0 -158
  182. data/closure-library/closure/goog/css/submenu.css +0 -28
  183. data/closure-library/closure/goog/css/tab.css +0 -91
  184. data/closure-library/closure/goog/css/tabbar.css +0 -52
  185. data/closure-library/closure/goog/css/tablesorter.css +0 -14
  186. data/closure-library/closure/goog/css/toolbar.css +0 -400
  187. data/closure-library/closure/goog/css/tooltip.css +0 -14
  188. data/closure-library/closure/goog/css/tree.css +0 -147
  189. data/closure-library/closure/goog/css/tristatemenuitem.css +0 -43
  190. data/closure-library/closure/goog/cssom/cssom.js +0 -447
  191. data/closure-library/closure/goog/cssom/cssom_test.html +0 -343
  192. data/closure-library/closure/goog/cssom/cssom_test_import_1.css +0 -11
  193. data/closure-library/closure/goog/cssom/cssom_test_import_2.css +0 -10
  194. data/closure-library/closure/goog/cssom/cssom_test_link_1.css +0 -10
  195. data/closure-library/closure/goog/cssom/iframe/style.js +0 -1020
  196. data/closure-library/closure/goog/cssom/iframe/style_test.html +0 -391
  197. data/closure-library/closure/goog/cssom/iframe/style_test_import.css +0 -10
  198. data/closure-library/closure/goog/datasource/datamanager.js +0 -566
  199. data/closure-library/closure/goog/datasource/datasource.js +0 -646
  200. data/closure-library/closure/goog/datasource/datasource_test.html +0 -265
  201. data/closure-library/closure/goog/datasource/expr.js +0 -544
  202. data/closure-library/closure/goog/datasource/expr_test.html +0 -97
  203. data/closure-library/closure/goog/datasource/fastdatanode.js +0 -792
  204. data/closure-library/closure/goog/datasource/fastdatanode_test.html +0 -254
  205. data/closure-library/closure/goog/datasource/jsdatasource.js +0 -460
  206. data/closure-library/closure/goog/datasource/jsondatasource.js +0 -146
  207. data/closure-library/closure/goog/datasource/jsxmlhttpdatasource.js +0 -191
  208. data/closure-library/closure/goog/datasource/jsxmlhttpdatasource_test.html +0 -94
  209. data/closure-library/closure/goog/datasource/xmldatasource.js +0 -407
  210. data/closure-library/closure/goog/date/date.js +0 -1642
  211. data/closure-library/closure/goog/date/date_test.html +0 -1293
  212. data/closure-library/closure/goog/date/datelike.js +0 -27
  213. data/closure-library/closure/goog/date/daterange.js +0 -398
  214. data/closure-library/closure/goog/date/daterange_test.html +0 -213
  215. data/closure-library/closure/goog/date/relative.js +0 -425
  216. data/closure-library/closure/goog/date/relative_test.html +0 -124
  217. data/closure-library/closure/goog/date/utcdatetime.js +0 -178
  218. data/closure-library/closure/goog/date/utcdatetime_test.html +0 -119
  219. data/closure-library/closure/goog/debug/console.js +0 -138
  220. data/closure-library/closure/goog/debug/debug.js +0 -452
  221. data/closure-library/closure/goog/debug/debug_test.html +0 -32
  222. data/closure-library/closure/goog/debug/debugwindow.js +0 -582
  223. data/closure-library/closure/goog/debug/devcss/devcss.js +0 -435
  224. data/closure-library/closure/goog/debug/devcss/devcss_test.html +0 -365
  225. data/closure-library/closure/goog/debug/devcss/devcssrunner.js +0 -26
  226. data/closure-library/closure/goog/debug/divconsole.js +0 -141
  227. data/closure-library/closure/goog/debug/enhanceerror_test.html +0 -138
  228. data/closure-library/closure/goog/debug/entrypointregistry.js +0 -111
  229. data/closure-library/closure/goog/debug/entrypointregistry_test.html +0 -63
  230. data/closure-library/closure/goog/debug/error.js +0 -47
  231. data/closure-library/closure/goog/debug/error_test.html +0 -85
  232. data/closure-library/closure/goog/debug/errorhandler.js +0 -234
  233. data/closure-library/closure/goog/debug/errorhandler_async_test.html +0 -112
  234. data/closure-library/closure/goog/debug/errorhandler_test.html +0 -186
  235. data/closure-library/closure/goog/debug/errorhandlerweakdep.js +0 -38
  236. data/closure-library/closure/goog/debug/errorreporter.js +0 -324
  237. data/closure-library/closure/goog/debug/errorreporter_test.html +0 -289
  238. data/closure-library/closure/goog/debug/fancywindow.js +0 -265
  239. data/closure-library/closure/goog/debug/formatter.js +0 -314
  240. data/closure-library/closure/goog/debug/gcdiagnostics.js +0 -143
  241. data/closure-library/closure/goog/debug/logbuffer.js +0 -147
  242. data/closure-library/closure/goog/debug/logbuffer_test.html +0 -105
  243. data/closure-library/closure/goog/debug/logger.js +0 -809
  244. data/closure-library/closure/goog/debug/logger_test.html +0 -208
  245. data/closure-library/closure/goog/debug/logrecord.js +0 -271
  246. data/closure-library/closure/goog/debug/reflect.js +0 -163
  247. data/closure-library/closure/goog/debug/reflect_test.html +0 -81
  248. data/closure-library/closure/goog/debug/relativetimeprovider.js +0 -83
  249. data/closure-library/closure/goog/debug/tracer.js +0 -750
  250. data/closure-library/closure/goog/debug/tracer_test.html +0 -57
  251. data/closure-library/closure/goog/demos/advancedtooltip.html +0 -78
  252. data/closure-library/closure/goog/demos/animationqueue.html +0 -149
  253. data/closure-library/closure/goog/demos/autocomplete-basic.html +0 -56
  254. data/closure-library/closure/goog/demos/autocompleteremote.html +0 -40
  255. data/closure-library/closure/goog/demos/autocompleteremotedata.js +0 -18
  256. data/closure-library/closure/goog/demos/autocompleterichremote.html +0 -137
  257. data/closure-library/closure/goog/demos/autocompleterichremotedata.js +0 -33
  258. data/closure-library/closure/goog/demos/bidiinput.html +0 -72
  259. data/closure-library/closure/goog/demos/bubble.html +0 -250
  260. data/closure-library/closure/goog/demos/button.html +0 -395
  261. data/closure-library/closure/goog/demos/charcounter.html +0 -57
  262. data/closure-library/closure/goog/demos/charpicker.html +0 -64
  263. data/closure-library/closure/goog/demos/checkbox.html +0 -122
  264. data/closure-library/closure/goog/demos/color-contrast.html +0 -60
  265. data/closure-library/closure/goog/demos/colormenubutton.html +0 -213
  266. data/closure-library/closure/goog/demos/colorpicker.html +0 -43
  267. data/closure-library/closure/goog/demos/combobox.html +0 -125
  268. data/closure-library/closure/goog/demos/container.html +0 -670
  269. data/closure-library/closure/goog/demos/control.html +0 -477
  270. data/closure-library/closure/goog/demos/css/demo.css +0 -75
  271. data/closure-library/closure/goog/demos/css/emojipicker.css +0 -36
  272. data/closure-library/closure/goog/demos/css/emojisprite.css +0 -92
  273. data/closure-library/closure/goog/demos/css3button.html +0 -166
  274. data/closure-library/closure/goog/demos/css3menubutton.html +0 -285
  275. data/closure-library/closure/goog/demos/cssspriteanimation.html +0 -80
  276. data/closure-library/closure/goog/demos/datepicker.html +0 -183
  277. data/closure-library/closure/goog/demos/debug.html +0 -119
  278. data/closure-library/closure/goog/demos/depsgraph.html +0 -221
  279. data/closure-library/closure/goog/demos/dialog.html +0 -156
  280. data/closure-library/closure/goog/demos/dimensionpicker.html +0 -108
  281. data/closure-library/closure/goog/demos/dimensionpicker_rtl.html +0 -123
  282. data/closure-library/closure/goog/demos/dom_selection.html +0 -88
  283. data/closure-library/closure/goog/demos/drag.html +0 -191
  284. data/closure-library/closure/goog/demos/dragdrop.html +0 -263
  285. data/closure-library/closure/goog/demos/dragdropdetector.html +0 -46
  286. data/closure-library/closure/goog/demos/dragdropdetector_target.html +0 -17
  287. data/closure-library/closure/goog/demos/dragger.html +0 -83
  288. data/closure-library/closure/goog/demos/draglistgroup.html +0 -261
  289. data/closure-library/closure/goog/demos/drilldownrow.html +0 -78
  290. data/closure-library/closure/goog/demos/editor/deps.js +0 -20
  291. data/closure-library/closure/goog/demos/editor/editor.html +0 -139
  292. data/closure-library/closure/goog/demos/editor/field_basic.html +0 -74
  293. data/closure-library/closure/goog/demos/editor/helloworld.html +0 -91
  294. data/closure-library/closure/goog/demos/editor/helloworld.js +0 -81
  295. data/closure-library/closure/goog/demos/editor/helloworld_test.html +0 -75
  296. data/closure-library/closure/goog/demos/editor/helloworlddialog.js +0 -163
  297. data/closure-library/closure/goog/demos/editor/helloworlddialog_test.html +0 -100
  298. data/closure-library/closure/goog/demos/editor/helloworlddialogplugin.js +0 -110
  299. data/closure-library/closure/goog/demos/editor/helloworlddialogplugin_test.html +0 -198
  300. data/closure-library/closure/goog/demos/editor/seamlessfield.html +0 -106
  301. data/closure-library/closure/goog/demos/effects.html +0 -142
  302. data/closure-library/closure/goog/demos/emoji/200.gif +0 -0
  303. data/closure-library/closure/goog/demos/emoji/201.gif +0 -0
  304. data/closure-library/closure/goog/demos/emoji/202.gif +0 -0
  305. data/closure-library/closure/goog/demos/emoji/203.gif +0 -0
  306. data/closure-library/closure/goog/demos/emoji/204.gif +0 -0
  307. data/closure-library/closure/goog/demos/emoji/205.gif +0 -0
  308. data/closure-library/closure/goog/demos/emoji/206.gif +0 -0
  309. data/closure-library/closure/goog/demos/emoji/2BC.gif +0 -0
  310. data/closure-library/closure/goog/demos/emoji/2BD.gif +0 -0
  311. data/closure-library/closure/goog/demos/emoji/2BE.gif +0 -0
  312. data/closure-library/closure/goog/demos/emoji/2BF.gif +0 -0
  313. data/closure-library/closure/goog/demos/emoji/2C0.gif +0 -0
  314. data/closure-library/closure/goog/demos/emoji/2C1.gif +0 -0
  315. data/closure-library/closure/goog/demos/emoji/2C2.gif +0 -0
  316. data/closure-library/closure/goog/demos/emoji/2C3.gif +0 -0
  317. data/closure-library/closure/goog/demos/emoji/2C4.gif +0 -0
  318. data/closure-library/closure/goog/demos/emoji/2C5.gif +0 -0
  319. data/closure-library/closure/goog/demos/emoji/2C6.gif +0 -0
  320. data/closure-library/closure/goog/demos/emoji/2C7.gif +0 -0
  321. data/closure-library/closure/goog/demos/emoji/2C8.gif +0 -0
  322. data/closure-library/closure/goog/demos/emoji/2C9.gif +0 -0
  323. data/closure-library/closure/goog/demos/emoji/2CA.gif +0 -0
  324. data/closure-library/closure/goog/demos/emoji/2CB.gif +0 -0
  325. data/closure-library/closure/goog/demos/emoji/2CC.gif +0 -0
  326. data/closure-library/closure/goog/demos/emoji/2CD.gif +0 -0
  327. data/closure-library/closure/goog/demos/emoji/2CE.gif +0 -0
  328. data/closure-library/closure/goog/demos/emoji/2CF.gif +0 -0
  329. data/closure-library/closure/goog/demos/emoji/2D0.gif +0 -0
  330. data/closure-library/closure/goog/demos/emoji/2D1.gif +0 -0
  331. data/closure-library/closure/goog/demos/emoji/2D2.gif +0 -0
  332. data/closure-library/closure/goog/demos/emoji/2D3.gif +0 -0
  333. data/closure-library/closure/goog/demos/emoji/2D4.gif +0 -0
  334. data/closure-library/closure/goog/demos/emoji/2D5.gif +0 -0
  335. data/closure-library/closure/goog/demos/emoji/2D6.gif +0 -0
  336. data/closure-library/closure/goog/demos/emoji/2D7.gif +0 -0
  337. data/closure-library/closure/goog/demos/emoji/2D8.gif +0 -0
  338. data/closure-library/closure/goog/demos/emoji/2D9.gif +0 -0
  339. data/closure-library/closure/goog/demos/emoji/2DA.gif +0 -0
  340. data/closure-library/closure/goog/demos/emoji/2DB.gif +0 -0
  341. data/closure-library/closure/goog/demos/emoji/2DC.gif +0 -0
  342. data/closure-library/closure/goog/demos/emoji/2DD.gif +0 -0
  343. data/closure-library/closure/goog/demos/emoji/2DE.gif +0 -0
  344. data/closure-library/closure/goog/demos/emoji/2DF.gif +0 -0
  345. data/closure-library/closure/goog/demos/emoji/2E0.gif +0 -0
  346. data/closure-library/closure/goog/demos/emoji/2E1.gif +0 -0
  347. data/closure-library/closure/goog/demos/emoji/2E2.gif +0 -0
  348. data/closure-library/closure/goog/demos/emoji/2E3.gif +0 -0
  349. data/closure-library/closure/goog/demos/emoji/2E4.gif +0 -0
  350. data/closure-library/closure/goog/demos/emoji/2E5.gif +0 -0
  351. data/closure-library/closure/goog/demos/emoji/2E6.gif +0 -0
  352. data/closure-library/closure/goog/demos/emoji/2E7.gif +0 -0
  353. data/closure-library/closure/goog/demos/emoji/2E8.gif +0 -0
  354. data/closure-library/closure/goog/demos/emoji/2E9.gif +0 -0
  355. data/closure-library/closure/goog/demos/emoji/2EA.gif +0 -0
  356. data/closure-library/closure/goog/demos/emoji/2EB.gif +0 -0
  357. data/closure-library/closure/goog/demos/emoji/2EC.gif +0 -0
  358. data/closure-library/closure/goog/demos/emoji/2ED.gif +0 -0
  359. data/closure-library/closure/goog/demos/emoji/2EE.gif +0 -0
  360. data/closure-library/closure/goog/demos/emoji/2EF.gif +0 -0
  361. data/closure-library/closure/goog/demos/emoji/2F0.gif +0 -0
  362. data/closure-library/closure/goog/demos/emoji/2F1.gif +0 -0
  363. data/closure-library/closure/goog/demos/emoji/2F2.gif +0 -0
  364. data/closure-library/closure/goog/demos/emoji/2F3.gif +0 -0
  365. data/closure-library/closure/goog/demos/emoji/2F4.gif +0 -0
  366. data/closure-library/closure/goog/demos/emoji/2F5.gif +0 -0
  367. data/closure-library/closure/goog/demos/emoji/2F6.gif +0 -0
  368. data/closure-library/closure/goog/demos/emoji/2F7.gif +0 -0
  369. data/closure-library/closure/goog/demos/emoji/2F8.gif +0 -0
  370. data/closure-library/closure/goog/demos/emoji/2F9.gif +0 -0
  371. data/closure-library/closure/goog/demos/emoji/2FA.gif +0 -0
  372. data/closure-library/closure/goog/demos/emoji/2FB.gif +0 -0
  373. data/closure-library/closure/goog/demos/emoji/2FC.gif +0 -0
  374. data/closure-library/closure/goog/demos/emoji/2FD.gif +0 -0
  375. data/closure-library/closure/goog/demos/emoji/2FE.gif +0 -0
  376. data/closure-library/closure/goog/demos/emoji/2FF.gif +0 -0
  377. data/closure-library/closure/goog/demos/emoji/none.gif +0 -0
  378. data/closure-library/closure/goog/demos/emoji/sprite.png +0 -0
  379. data/closure-library/closure/goog/demos/emoji/sprite2.png +0 -0
  380. data/closure-library/closure/goog/demos/emoji/unknown.gif +0 -0
  381. data/closure-library/closure/goog/demos/event-propagation.html +0 -192
  382. data/closure-library/closure/goog/demos/events.html +0 -99
  383. data/closure-library/closure/goog/demos/eventtarget.html +0 -70
  384. data/closure-library/closure/goog/demos/filedrophandler.html +0 -63
  385. data/closure-library/closure/goog/demos/filteredmenu.html +0 -118
  386. data/closure-library/closure/goog/demos/focushandler.html +0 -58
  387. data/closure-library/closure/goog/demos/gauge.html +0 -158
  388. data/closure-library/closure/goog/demos/graphics/advancedcoordinates.html +0 -141
  389. data/closure-library/closure/goog/demos/graphics/advancedcoordinates2.html +0 -130
  390. data/closure-library/closure/goog/demos/graphics/basicelements.html +0 -264
  391. data/closure-library/closure/goog/demos/graphics/events.html +0 -113
  392. data/closure-library/closure/goog/demos/graphics/modifyelements.html +0 -195
  393. data/closure-library/closure/goog/demos/graphics/subpixel.html +0 -80
  394. data/closure-library/closure/goog/demos/graphics/tiger.html +0 -105
  395. data/closure-library/closure/goog/demos/graphics/tigerdata.js +0 -2840
  396. data/closure-library/closure/goog/demos/history1.html +0 -132
  397. data/closure-library/closure/goog/demos/history2.html +0 -100
  398. data/closure-library/closure/goog/demos/history3.html +0 -106
  399. data/closure-library/closure/goog/demos/history3js.html +0 -36
  400. data/closure-library/closure/goog/demos/history_blank.html +0 -25
  401. data/closure-library/closure/goog/demos/hovercard.html +0 -177
  402. data/closure-library/closure/goog/demos/hsvapalette.html +0 -55
  403. data/closure-library/closure/goog/demos/hsvpalette.html +0 -56
  404. data/closure-library/closure/goog/demos/html5history.html +0 -87
  405. data/closure-library/closure/goog/demos/imagelessbutton.html +0 -221
  406. data/closure-library/closure/goog/demos/imagelessmenubutton.html +0 -285
  407. data/closure-library/closure/goog/demos/imagelessroundedcorner.html +0 -231
  408. data/closure-library/closure/goog/demos/index.html +0 -19
  409. data/closure-library/closure/goog/demos/index_nav.html +0 -253
  410. data/closure-library/closure/goog/demos/index_splash.html +0 -22
  411. data/closure-library/closure/goog/demos/inline_block_quirks.html +0 -125
  412. data/closure-library/closure/goog/demos/inline_block_standards.html +0 -126
  413. data/closure-library/closure/goog/demos/inputdatepicker.html +0 -60
  414. data/closure-library/closure/goog/demos/inputhandler.html +0 -72
  415. data/closure-library/closure/goog/demos/jsonprettyprinter.html +0 -80
  416. data/closure-library/closure/goog/demos/keyboardshortcuts.html +0 -112
  417. data/closure-library/closure/goog/demos/keyhandler.html +0 -127
  418. data/closure-library/closure/goog/demos/labelinput.html +0 -42
  419. data/closure-library/closure/goog/demos/menu.html +0 -220
  420. data/closure-library/closure/goog/demos/menubutton.html +0 -318
  421. data/closure-library/closure/goog/demos/mousewheelhandler.html +0 -109
  422. data/closure-library/closure/goog/demos/offline.html +0 -268
  423. data/closure-library/closure/goog/demos/onlinehandler.html +0 -77
  424. data/closure-library/closure/goog/demos/palette.html +0 -302
  425. data/closure-library/closure/goog/demos/pastehandler.html +0 -54
  426. data/closure-library/closure/goog/demos/plaintextspellchecker.html +0 -106
  427. data/closure-library/closure/goog/demos/popup.html +0 -200
  428. data/closure-library/closure/goog/demos/popupcolorpicker.html +0 -49
  429. data/closure-library/closure/goog/demos/popupdatepicker.html +0 -53
  430. data/closure-library/closure/goog/demos/popupemojipicker.html +0 -407
  431. data/closure-library/closure/goog/demos/popupmenu.html +0 -89
  432. data/closure-library/closure/goog/demos/progressbar.html +0 -97
  433. data/closure-library/closure/goog/demos/prompt.html +0 -92
  434. data/closure-library/closure/goog/demos/quadtree.html +0 -107
  435. data/closure-library/closure/goog/demos/ratings.html +0 -120
  436. data/closure-library/closure/goog/demos/richtextspellchecker.html +0 -92
  437. data/closure-library/closure/goog/demos/roundedpanel.html +0 -139
  438. data/closure-library/closure/goog/demos/samplecomponent.html +0 -75
  439. data/closure-library/closure/goog/demos/samplecomponent.js +0 -206
  440. data/closure-library/closure/goog/demos/scrollfloater.html +0 -117
  441. data/closure-library/closure/goog/demos/select.html +0 -324
  442. data/closure-library/closure/goog/demos/selectionmenubutton.html +0 -186
  443. data/closure-library/closure/goog/demos/serverchart.html +0 -122
  444. data/closure-library/closure/goog/demos/silverlightclipboardbutton.html +0 -71
  445. data/closure-library/closure/goog/demos/slider.html +0 -110
  446. data/closure-library/closure/goog/demos/splitbehavior.html +0 -164
  447. data/closure-library/closure/goog/demos/splitpane.html +0 -243
  448. data/closure-library/closure/goog/demos/stopevent.html +0 -171
  449. data/closure-library/closure/goog/demos/submenus.html +0 -130
  450. data/closure-library/closure/goog/demos/submenus2.html +0 -150
  451. data/closure-library/closure/goog/demos/tabbar.html +0 -289
  452. data/closure-library/closure/goog/demos/tablesorter.html +0 -116
  453. data/closure-library/closure/goog/demos/tabpane.html +0 -302
  454. data/closure-library/closure/goog/demos/textarea.html +0 -128
  455. data/closure-library/closure/goog/demos/timers.html +0 -291
  456. data/closure-library/closure/goog/demos/toolbar.html +0 -703
  457. data/closure-library/closure/goog/demos/tooltip.html +0 -91
  458. data/closure-library/closure/goog/demos/tracer.html +0 -92
  459. data/closure-library/closure/goog/demos/tree/demo.html +0 -126
  460. data/closure-library/closure/goog/demos/tree/testdata.js +0 -260
  461. data/closure-library/closure/goog/demos/tweakui.html +0 -121
  462. data/closure-library/closure/goog/demos/twothumbslider.html +0 -121
  463. data/closure-library/closure/goog/demos/useragent.html +0 -173
  464. data/closure-library/closure/goog/demos/viewportsizemonitor.html +0 -71
  465. data/closure-library/closure/goog/demos/xpc/blank.html +0 -7
  466. data/closure-library/closure/goog/demos/xpc/index.html +0 -89
  467. data/closure-library/closure/goog/demos/xpc/inner.html +0 -58
  468. data/closure-library/closure/goog/demos/xpc/minimal/blank.html +0 -7
  469. data/closure-library/closure/goog/demos/xpc/minimal/index.html +0 -105
  470. data/closure-library/closure/goog/demos/xpc/minimal/inner.html +0 -75
  471. data/closure-library/closure/goog/demos/xpc/minimal/relay.html +0 -7
  472. data/closure-library/closure/goog/demos/xpc/relay.html +0 -7
  473. data/closure-library/closure/goog/demos/xpc/xpcdemo.js +0 -304
  474. data/closure-library/closure/goog/demos/zippy.html +0 -127
  475. data/closure-library/closure/goog/deps.js +0 -679
  476. data/closure-library/closure/goog/disposable/disposable.js +0 -167
  477. data/closure-library/closure/goog/disposable/disposable_test.html +0 -202
  478. data/closure-library/closure/goog/dom/a11y.js +0 -438
  479. data/closure-library/closure/goog/dom/a11y_test.html +0 -86
  480. data/closure-library/closure/goog/dom/abstractmultirange.js +0 -77
  481. data/closure-library/closure/goog/dom/abstractrange.js +0 -514
  482. data/closure-library/closure/goog/dom/abstractrange_test.html +0 -73
  483. data/closure-library/closure/goog/dom/annotate.js +0 -352
  484. data/closure-library/closure/goog/dom/annotate_test.html +0 -187
  485. data/closure-library/closure/goog/dom/browserfeature.js +0 -50
  486. data/closure-library/closure/goog/dom/browserrange/abstractrange.js +0 -316
  487. data/closure-library/closure/goog/dom/browserrange/browserrange.js +0 -149
  488. data/closure-library/closure/goog/dom/browserrange/browserrange_test.html +0 -562
  489. data/closure-library/closure/goog/dom/browserrange/geckorange.js +0 -82
  490. data/closure-library/closure/goog/dom/browserrange/ierange.js +0 -970
  491. data/closure-library/closure/goog/dom/browserrange/operarange.js +0 -83
  492. data/closure-library/closure/goog/dom/browserrange/w3crange.js +0 -364
  493. data/closure-library/closure/goog/dom/browserrange/webkitrange.js +0 -112
  494. data/closure-library/closure/goog/dom/classes.js +0 -233
  495. data/closure-library/closure/goog/dom/classes_test.html +0 -228
  496. data/closure-library/closure/goog/dom/controlrange.js +0 -511
  497. data/closure-library/closure/goog/dom/controlrange_test.html +0 -246
  498. data/closure-library/closure/goog/dom/dataset.js +0 -90
  499. data/closure-library/closure/goog/dom/dataset_test.html +0 -104
  500. data/closure-library/closure/goog/dom/dom.js +0 -2424
  501. data/closure-library/closure/goog/dom/dom_quirks_test.html +0 -104
  502. data/closure-library/closure/goog/dom/dom_test.html +0 -103
  503. data/closure-library/closure/goog/dom/dom_test.js +0 -1129
  504. data/closure-library/closure/goog/dom/fontsizemonitor.js +0 -159
  505. data/closure-library/closure/goog/dom/fontsizemonitor_test.html +0 -283
  506. data/closure-library/closure/goog/dom/forms.js +0 -403
  507. data/closure-library/closure/goog/dom/forms_test.html +0 -483
  508. data/closure-library/closure/goog/dom/iframe.js +0 -128
  509. data/closure-library/closure/goog/dom/iframe_test.html +0 -87
  510. data/closure-library/closure/goog/dom/iter.js +0 -127
  511. data/closure-library/closure/goog/dom/iter_test.html +0 -97
  512. data/closure-library/closure/goog/dom/multirange.js +0 -519
  513. data/closure-library/closure/goog/dom/multirange_test.html +0 -67
  514. data/closure-library/closure/goog/dom/nodeiterator.js +0 -85
  515. data/closure-library/closure/goog/dom/nodeiterator_test.html +0 -49
  516. data/closure-library/closure/goog/dom/nodeoffset.js +0 -111
  517. data/closure-library/closure/goog/dom/nodeoffset_test.html +0 -88
  518. data/closure-library/closure/goog/dom/pattern/abstractpattern.js +0 -60
  519. data/closure-library/closure/goog/dom/pattern/allchildren.js +0 -73
  520. data/closure-library/closure/goog/dom/pattern/callback/callback.js +0 -82
  521. data/closure-library/closure/goog/dom/pattern/callback/counter.js +0 -72
  522. data/closure-library/closure/goog/dom/pattern/callback/test.js +0 -77
  523. data/closure-library/closure/goog/dom/pattern/childmatches.js +0 -152
  524. data/closure-library/closure/goog/dom/pattern/endtag.js +0 -53
  525. data/closure-library/closure/goog/dom/pattern/fulltag.js +0 -92
  526. data/closure-library/closure/goog/dom/pattern/matcher.js +0 -150
  527. data/closure-library/closure/goog/dom/pattern/matcher_test.html +0 -204
  528. data/closure-library/closure/goog/dom/pattern/nodetype.js +0 -57
  529. data/closure-library/closure/goog/dom/pattern/pattern.js +0 -93
  530. data/closure-library/closure/goog/dom/pattern/pattern_test.html +0 -614
  531. data/closure-library/closure/goog/dom/pattern/repeat.js +0 -188
  532. data/closure-library/closure/goog/dom/pattern/sequence.js +0 -139
  533. data/closure-library/closure/goog/dom/pattern/starttag.js +0 -53
  534. data/closure-library/closure/goog/dom/pattern/tag.js +0 -149
  535. data/closure-library/closure/goog/dom/pattern/text.js +0 -69
  536. data/closure-library/closure/goog/dom/range.js +0 -220
  537. data/closure-library/closure/goog/dom/range_test.html +0 -702
  538. data/closure-library/closure/goog/dom/rangeendpoint.js +0 -32
  539. data/closure-library/closure/goog/dom/savedcaretrange.js +0 -203
  540. data/closure-library/closure/goog/dom/savedcaretrange_test.html +0 -235
  541. data/closure-library/closure/goog/dom/savedrange.js +0 -74
  542. data/closure-library/closure/goog/dom/savedrange_test.html +0 -61
  543. data/closure-library/closure/goog/dom/selection.js +0 -470
  544. data/closure-library/closure/goog/dom/selection_test.html +0 -329
  545. data/closure-library/closure/goog/dom/tagiterator.js +0 -365
  546. data/closure-library/closure/goog/dom/tagiterator_test.html +0 -589
  547. data/closure-library/closure/goog/dom/tagname.js +0 -121
  548. data/closure-library/closure/goog/dom/tagname_test.html +0 -37
  549. data/closure-library/closure/goog/dom/textrange.js +0 -611
  550. data/closure-library/closure/goog/dom/textrange_test.html +0 -127
  551. data/closure-library/closure/goog/dom/textrangeiterator.js +0 -246
  552. data/closure-library/closure/goog/dom/textrangeiterator_test.html +0 -142
  553. data/closure-library/closure/goog/dom/viewportsizemonitor.js +0 -220
  554. data/closure-library/closure/goog/dom/viewportsizemonitor_test.html +0 -166
  555. data/closure-library/closure/goog/dom/xml.js +0 -187
  556. data/closure-library/closure/goog/dom/xml_test.html +0 -77
  557. data/closure-library/closure/goog/editor/browserfeature.js +0 -251
  558. data/closure-library/closure/goog/editor/browserfeature_test.html +0 -124
  559. data/closure-library/closure/goog/editor/clicktoeditwrapper.js +0 -438
  560. data/closure-library/closure/goog/editor/clicktoeditwrapper_test.html +0 -137
  561. data/closure-library/closure/goog/editor/command.js +0 -74
  562. data/closure-library/closure/goog/editor/defines.js +0 -34
  563. data/closure-library/closure/goog/editor/field.js +0 -2594
  564. data/closure-library/closure/goog/editor/field_test.html +0 -1000
  565. data/closure-library/closure/goog/editor/focus.js +0 -32
  566. data/closure-library/closure/goog/editor/focus_test.html +0 -66
  567. data/closure-library/closure/goog/editor/icontent.js +0 -296
  568. data/closure-library/closure/goog/editor/icontent_test.html +0 -209
  569. data/closure-library/closure/goog/editor/link.js +0 -279
  570. data/closure-library/closure/goog/editor/link_test.html +0 -234
  571. data/closure-library/closure/goog/editor/node.js +0 -435
  572. data/closure-library/closure/goog/editor/node_test.html +0 -590
  573. data/closure-library/closure/goog/editor/plugin.js +0 -444
  574. data/closure-library/closure/goog/editor/plugin_test.html +0 -187
  575. data/closure-library/closure/goog/editor/plugins/abstractbubbleplugin.js +0 -535
  576. data/closure-library/closure/goog/editor/plugins/abstractbubbleplugin_test.html +0 -227
  577. data/closure-library/closure/goog/editor/plugins/abstractdialogplugin.js +0 -336
  578. data/closure-library/closure/goog/editor/plugins/abstractdialogplugin_test.html +0 -399
  579. data/closure-library/closure/goog/editor/plugins/abstracttabhandler.js +0 -78
  580. data/closure-library/closure/goog/editor/plugins/abstracttabhandler_test.html +0 -91
  581. data/closure-library/closure/goog/editor/plugins/basictextformatter.js +0 -1740
  582. data/closure-library/closure/goog/editor/plugins/basictextformatter_test.html +0 -1171
  583. data/closure-library/closure/goog/editor/plugins/blockquote.js +0 -422
  584. data/closure-library/closure/goog/editor/plugins/blockquote_test.html +0 -149
  585. data/closure-library/closure/goog/editor/plugins/emoticons.js +0 -83
  586. data/closure-library/closure/goog/editor/plugins/emoticons_test.html +0 -67
  587. data/closure-library/closure/goog/editor/plugins/enterhandler.js +0 -730
  588. data/closure-library/closure/goog/editor/plugins/enterhandler_test.html +0 -739
  589. data/closure-library/closure/goog/editor/plugins/headerformatter.js +0 -95
  590. data/closure-library/closure/goog/editor/plugins/headerformatter_test.html +0 -100
  591. data/closure-library/closure/goog/editor/plugins/linkbubble.js +0 -458
  592. data/closure-library/closure/goog/editor/plugins/linkbubble_test.html +0 -309
  593. data/closure-library/closure/goog/editor/plugins/linkdialogplugin.js +0 -222
  594. data/closure-library/closure/goog/editor/plugins/linkdialogplugin_test.html +0 -370
  595. data/closure-library/closure/goog/editor/plugins/listtabhandler.js +0 -66
  596. data/closure-library/closure/goog/editor/plugins/listtabhandler_test.html +0 -177
  597. data/closure-library/closure/goog/editor/plugins/loremipsum.js +0 -186
  598. data/closure-library/closure/goog/editor/plugins/loremipsum_test.html +0 -169
  599. data/closure-library/closure/goog/editor/plugins/removeformatting.js +0 -772
  600. data/closure-library/closure/goog/editor/plugins/removeformatting_test.html +0 -920
  601. data/closure-library/closure/goog/editor/plugins/spacestabhandler.js +0 -93
  602. data/closure-library/closure/goog/editor/plugins/spacestabhandler_test.html +0 -186
  603. data/closure-library/closure/goog/editor/plugins/tableeditor.js +0 -496
  604. data/closure-library/closure/goog/editor/plugins/tableeditor_test.html +0 -299
  605. data/closure-library/closure/goog/editor/plugins/tagonenterhandler.js +0 -741
  606. data/closure-library/closure/goog/editor/plugins/tagonenterhandler_test.html +0 -481
  607. data/closure-library/closure/goog/editor/plugins/undoredo.js +0 -1014
  608. data/closure-library/closure/goog/editor/plugins/undoredo_test.html +0 -525
  609. data/closure-library/closure/goog/editor/plugins/undoredomanager.js +0 -337
  610. data/closure-library/closure/goog/editor/plugins/undoredomanager_test.html +0 -394
  611. data/closure-library/closure/goog/editor/plugins/undoredostate.js +0 -84
  612. data/closure-library/closure/goog/editor/plugins/undoredostate_test.html +0 -44
  613. data/closure-library/closure/goog/editor/range.js +0 -602
  614. data/closure-library/closure/goog/editor/range_test.html +0 -880
  615. data/closure-library/closure/goog/editor/seamlessfield.js +0 -720
  616. data/closure-library/closure/goog/editor/seamlessfield_quirks_test.html +0 -30
  617. data/closure-library/closure/goog/editor/seamlessfield_test.html +0 -33
  618. data/closure-library/closure/goog/editor/seamlessfield_test.js +0 -392
  619. data/closure-library/closure/goog/editor/style.js +0 -222
  620. data/closure-library/closure/goog/editor/style_test.html +0 -177
  621. data/closure-library/closure/goog/editor/table.js +0 -566
  622. data/closure-library/closure/goog/editor/table_test.html +0 -522
  623. data/closure-library/closure/goog/events/actioneventwrapper.js +0 -131
  624. data/closure-library/closure/goog/events/actioneventwrapper_test.html +0 -176
  625. data/closure-library/closure/goog/events/actionhandler.js +0 -189
  626. data/closure-library/closure/goog/events/actionhandler_test.html +0 -82
  627. data/closure-library/closure/goog/events/browserevent.js +0 -412
  628. data/closure-library/closure/goog/events/browserevent_test.html +0 -145
  629. data/closure-library/closure/goog/events/browserfeature.js +0 -43
  630. data/closure-library/closure/goog/events/event.js +0 -123
  631. data/closure-library/closure/goog/events/event_test.html +0 -70
  632. data/closure-library/closure/goog/events/eventhandler.js +0 -348
  633. data/closure-library/closure/goog/events/eventhandler_test.html +0 -230
  634. data/closure-library/closure/goog/events/events.js +0 -1101
  635. data/closure-library/closure/goog/events/events_test.html +0 -362
  636. data/closure-library/closure/goog/events/eventtarget.js +0 -197
  637. data/closure-library/closure/goog/events/eventtarget_test.html +0 -423
  638. data/closure-library/closure/goog/events/eventtype.js +0 -107
  639. data/closure-library/closure/goog/events/eventwrapper.js +0 -67
  640. data/closure-library/closure/goog/events/filedrophandler.js +0 -224
  641. data/closure-library/closure/goog/events/filedrophandler_test.html +0 -258
  642. data/closure-library/closure/goog/events/focushandler.js +0 -111
  643. data/closure-library/closure/goog/events/imehandler.js +0 -365
  644. data/closure-library/closure/goog/events/imehandler_test.html +0 -271
  645. data/closure-library/closure/goog/events/inputhandler.js +0 -218
  646. data/closure-library/closure/goog/events/keycodes.js +0 -314
  647. data/closure-library/closure/goog/events/keycodes_test.html +0 -72
  648. data/closure-library/closure/goog/events/keyhandler.js +0 -522
  649. data/closure-library/closure/goog/events/keyhandler_test.html +0 -621
  650. data/closure-library/closure/goog/events/keynames.js +0 -124
  651. data/closure-library/closure/goog/events/listener.js +0 -160
  652. data/closure-library/closure/goog/events/mousewheelhandler.js +0 -280
  653. data/closure-library/closure/goog/events/mousewheelhandler_test.html +0 -331
  654. data/closure-library/closure/goog/events/onlinehandler.js +0 -176
  655. data/closure-library/closure/goog/events/onlinelistener_test.html +0 -214
  656. data/closure-library/closure/goog/events/pastehandler.js +0 -444
  657. data/closure-library/closure/goog/events/pastehandler_test.html +0 -354
  658. data/closure-library/closure/goog/events/pools.js +0 -342
  659. data/closure-library/closure/goog/format/emailaddress.js +0 -329
  660. data/closure-library/closure/goog/format/emailaddress_test.html +0 -179
  661. data/closure-library/closure/goog/format/format.js +0 -451
  662. data/closure-library/closure/goog/format/format_test.html +0 -257
  663. data/closure-library/closure/goog/format/htmlprettyprinter.js +0 -406
  664. data/closure-library/closure/goog/format/htmlprettyprinter_test.html +0 -205
  665. data/closure-library/closure/goog/format/jsonprettyprinter.js +0 -405
  666. data/closure-library/closure/goog/format/jsonprettyprinter_test.html +0 -111
  667. data/closure-library/closure/goog/fs/entry.js +0 -406
  668. data/closure-library/closure/goog/fs/error.js +0 -103
  669. data/closure-library/closure/goog/fs/filesaver.js +0 -214
  670. data/closure-library/closure/goog/fs/filesystem.js +0 -59
  671. data/closure-library/closure/goog/fs/filewriter.js +0 -106
  672. data/closure-library/closure/goog/fs/fs.js +0 -183
  673. data/closure-library/closure/goog/fs/fs_test.html +0 -270
  674. data/closure-library/closure/goog/functions/functions.js +0 -219
  675. data/closure-library/closure/goog/functions/functions_test.html +0 -198
  676. data/closure-library/closure/goog/fx/abstractdragdrop.js +0 -1451
  677. data/closure-library/closure/goog/fx/abstractdragdrop_test.html +0 -430
  678. data/closure-library/closure/goog/fx/animation.js +0 -621
  679. data/closure-library/closure/goog/fx/animationqueue.js +0 -348
  680. data/closure-library/closure/goog/fx/cssspriteanimation.js +0 -112
  681. data/closure-library/closure/goog/fx/cssspriteanimation_test.html +0 -125
  682. data/closure-library/closure/goog/fx/dom.js +0 -610
  683. data/closure-library/closure/goog/fx/dragdrop.js +0 -49
  684. data/closure-library/closure/goog/fx/dragdropgroup.js +0 -107
  685. data/closure-library/closure/goog/fx/dragdropgroup_test.html +0 -234
  686. data/closure-library/closure/goog/fx/dragger.js +0 -731
  687. data/closure-library/closure/goog/fx/dragger_test.html +0 -415
  688. data/closure-library/closure/goog/fx/draglistgroup.js +0 -1159
  689. data/closure-library/closure/goog/fx/draglistgroup_test.html +0 -231
  690. data/closure-library/closure/goog/fx/dragscrollsupport.js +0 -274
  691. data/closure-library/closure/goog/fx/dragscrollsupport_test.html +0 -253
  692. data/closure-library/closure/goog/fx/easing.js +0 -50
  693. data/closure-library/closure/goog/fx/fx.js +0 -30
  694. data/closure-library/closure/goog/fx/fx_test.html +0 -157
  695. data/closure-library/closure/goog/gears/basestore.js +0 -523
  696. data/closure-library/closure/goog/gears/basestore_test.html +0 -247
  697. data/closure-library/closure/goog/gears/database.js +0 -935
  698. data/closure-library/closure/goog/gears/database_test.html +0 -699
  699. data/closure-library/closure/goog/gears/fakeworkerpool.js +0 -252
  700. data/closure-library/closure/goog/gears/fakeworkerpool_test.html +0 -188
  701. data/closure-library/closure/goog/gears/gears.js +0 -228
  702. data/closure-library/closure/goog/gears/gears_test.html +0 -78
  703. data/closure-library/closure/goog/gears/httprequest.js +0 -77
  704. data/closure-library/closure/goog/gears/loggerclient.js +0 -131
  705. data/closure-library/closure/goog/gears/loggerclient_test.html +0 -171
  706. data/closure-library/closure/goog/gears/loggerserver.js +0 -158
  707. data/closure-library/closure/goog/gears/loggerserver_test.html +0 -118
  708. data/closure-library/closure/goog/gears/logstore.js +0 -479
  709. data/closure-library/closure/goog/gears/logstore_test.html +0 -600
  710. data/closure-library/closure/goog/gears/managedresourcestore.js +0 -553
  711. data/closure-library/closure/goog/gears/managedresourcestore_test.html +0 -453
  712. data/closure-library/closure/goog/gears/multipartformdata.js +0 -203
  713. data/closure-library/closure/goog/gears/multipartformdata_test.html +0 -220
  714. data/closure-library/closure/goog/gears/statustype.js +0 -37
  715. data/closure-library/closure/goog/gears/urlcapture.js +0 -370
  716. data/closure-library/closure/goog/gears/urlcapture_test.html +0 -392
  717. data/closure-library/closure/goog/gears/worker.js +0 -201
  718. data/closure-library/closure/goog/gears/workerchannel.js +0 -205
  719. data/closure-library/closure/goog/gears/workerchannel_test.html +0 -207
  720. data/closure-library/closure/goog/gears/workerpool.js +0 -241
  721. data/closure-library/closure/goog/gears/workerpool_test.html +0 -203
  722. data/closure-library/closure/goog/graphics/abstractgraphics.js +0 -439
  723. data/closure-library/closure/goog/graphics/affinetransform.js +0 -497
  724. data/closure-library/closure/goog/graphics/affinetransform_test.html +0 -316
  725. data/closure-library/closure/goog/graphics/canvaselement.js +0 -776
  726. data/closure-library/closure/goog/graphics/canvasgraphics.js +0 -632
  727. data/closure-library/closure/goog/graphics/element.js +0 -145
  728. data/closure-library/closure/goog/graphics/ellipseelement.js +0 -59
  729. data/closure-library/closure/goog/graphics/ext/coordinates.js +0 -158
  730. data/closure-library/closure/goog/graphics/ext/coordinates_test.html +0 -74
  731. data/closure-library/closure/goog/graphics/ext/element.js +0 -970
  732. data/closure-library/closure/goog/graphics/ext/element_test.html +0 -144
  733. data/closure-library/closure/goog/graphics/ext/ellipse.js +0 -58
  734. data/closure-library/closure/goog/graphics/ext/ext.js +0 -29
  735. data/closure-library/closure/goog/graphics/ext/graphics.js +0 -209
  736. data/closure-library/closure/goog/graphics/ext/group.js +0 -213
  737. data/closure-library/closure/goog/graphics/ext/image.js +0 -62
  738. data/closure-library/closure/goog/graphics/ext/path.js +0 -140
  739. data/closure-library/closure/goog/graphics/ext/path_test.html +0 -46
  740. data/closure-library/closure/goog/graphics/ext/rectangle.js +0 -53
  741. data/closure-library/closure/goog/graphics/ext/shape.js +0 -144
  742. data/closure-library/closure/goog/graphics/ext/strokeandfillelement.js +0 -69
  743. data/closure-library/closure/goog/graphics/fill.js +0 -29
  744. data/closure-library/closure/goog/graphics/font.js +0 -59
  745. data/closure-library/closure/goog/graphics/graphics.js +0 -124
  746. data/closure-library/closure/goog/graphics/groupelement.js +0 -54
  747. data/closure-library/closure/goog/graphics/imageelement.js +0 -67
  748. data/closure-library/closure/goog/graphics/lineargradient.js +0 -131
  749. data/closure-library/closure/goog/graphics/path.js +0 -508
  750. data/closure-library/closure/goog/graphics/path_test.html +0 -359
  751. data/closure-library/closure/goog/graphics/pathelement.js +0 -50
  752. data/closure-library/closure/goog/graphics/paths.js +0 -86
  753. data/closure-library/closure/goog/graphics/paths_test.html +0 -97
  754. data/closure-library/closure/goog/graphics/rectelement.js +0 -59
  755. data/closure-library/closure/goog/graphics/solidfill.js +0 -70
  756. data/closure-library/closure/goog/graphics/stroke.js +0 -63
  757. data/closure-library/closure/goog/graphics/strokeandfillelement.js +0 -110
  758. data/closure-library/closure/goog/graphics/svgelement.js +0 -262
  759. data/closure-library/closure/goog/graphics/svggraphics.js +0 -813
  760. data/closure-library/closure/goog/graphics/textelement.js +0 -51
  761. data/closure-library/closure/goog/graphics/vmlelement.js +0 -380
  762. data/closure-library/closure/goog/graphics/vmlgraphics.js +0 -863
  763. data/closure-library/closure/goog/history/event.js +0 -54
  764. data/closure-library/closure/goog/history/eventtype.js +0 -30
  765. data/closure-library/closure/goog/history/history.js +0 -979
  766. data/closure-library/closure/goog/history/html5history.js +0 -303
  767. data/closure-library/closure/goog/history/html5history_test.html +0 -163
  768. data/closure-library/closure/goog/i18n/bidi.js +0 -772
  769. data/closure-library/closure/goog/i18n/bidi_test.html +0 -414
  770. data/closure-library/closure/goog/i18n/bidiformatter.js +0 -488
  771. data/closure-library/closure/goog/i18n/bidiformatter_test.html +0 -343
  772. data/closure-library/closure/goog/i18n/charlistdecompressor.js +0 -157
  773. data/closure-library/closure/goog/i18n/charlistdecompressor_test.html +0 -65
  774. data/closure-library/closure/goog/i18n/charpickerdata.js +0 -3185
  775. data/closure-library/closure/goog/i18n/currency.js +0 -385
  776. data/closure-library/closure/goog/i18n/currency_test.html +0 -202
  777. data/closure-library/closure/goog/i18n/currencycodemap.js +0 -210
  778. data/closure-library/closure/goog/i18n/datetimeformat.js +0 -636
  779. data/closure-library/closure/goog/i18n/datetimeformat_test.html +0 -436
  780. data/closure-library/closure/goog/i18n/datetimeparse.js +0 -1111
  781. data/closure-library/closure/goog/i18n/datetimeparse_test.html +0 -796
  782. data/closure-library/closure/goog/i18n/datetimepatterns.js +0 -1586
  783. data/closure-library/closure/goog/i18n/datetimepatternsext.js +0 -7386
  784. data/closure-library/closure/goog/i18n/datetimesymbols.js +0 -3350
  785. data/closure-library/closure/goog/i18n/datetimesymbolsext.js +0 -12938
  786. data/closure-library/closure/goog/i18n/graphemebreak.js +0 -181
  787. data/closure-library/closure/goog/i18n/graphemebreak_test.html +0 -72
  788. data/closure-library/closure/goog/i18n/messageformat.js +0 -556
  789. data/closure-library/closure/goog/i18n/messageformat_test.html +0 -334
  790. data/closure-library/closure/goog/i18n/mime.js +0 -100
  791. data/closure-library/closure/goog/i18n/mime_test.html +0 -51
  792. data/closure-library/closure/goog/i18n/numberformat.js +0 -763
  793. data/closure-library/closure/goog/i18n/numberformat_test.html +0 -605
  794. data/closure-library/closure/goog/i18n/numberformatsymbols.js +0 -10358
  795. data/closure-library/closure/goog/i18n/pluralrules.js +0 -695
  796. data/closure-library/closure/goog/i18n/timezone.js +0 -341
  797. data/closure-library/closure/goog/i18n/timezone_test.html +0 -163
  798. data/closure-library/closure/goog/i18n/uchar.js +0 -1160
  799. data/closure-library/closure/goog/i18n/uchar_test.html +0 -72
  800. data/closure-library/closure/goog/images/blank.gif +0 -0
  801. data/closure-library/closure/goog/images/bubble_close.jpg +0 -0
  802. data/closure-library/closure/goog/images/bubble_left.gif +0 -0
  803. data/closure-library/closure/goog/images/bubble_right.gif +0 -0
  804. data/closure-library/closure/goog/images/button-bg.gif +0 -0
  805. data/closure-library/closure/goog/images/check-outline.gif +0 -0
  806. data/closure-library/closure/goog/images/check-sprite.gif +0 -0
  807. data/closure-library/closure/goog/images/check.gif +0 -0
  808. data/closure-library/closure/goog/images/close_box.gif +0 -0
  809. data/closure-library/closure/goog/images/color-swatch-tick.gif +0 -0
  810. data/closure-library/closure/goog/images/dialog_close_box.gif +0 -0
  811. data/closure-library/closure/goog/images/dimension-highlighted.png +0 -0
  812. data/closure-library/closure/goog/images/dimension-unhighlighted.png +0 -0
  813. data/closure-library/closure/goog/images/dropdn.gif +0 -0
  814. data/closure-library/closure/goog/images/dropdn_disabled.gif +0 -0
  815. data/closure-library/closure/goog/images/dropdown.gif +0 -0
  816. data/closure-library/closure/goog/images/gears_bluedot.gif +0 -0
  817. data/closure-library/closure/goog/images/gears_offline.gif +0 -0
  818. data/closure-library/closure/goog/images/gears_online.gif +0 -0
  819. data/closure-library/closure/goog/images/gears_paused.gif +0 -0
  820. data/closure-library/closure/goog/images/gears_syncing.gif +0 -0
  821. data/closure-library/closure/goog/images/hsv-sprite-sm.gif +0 -0
  822. data/closure-library/closure/goog/images/hsv-sprite-sm.png +0 -0
  823. data/closure-library/closure/goog/images/hsv-sprite.gif +0 -0
  824. data/closure-library/closure/goog/images/hsv-sprite.png +0 -0
  825. data/closure-library/closure/goog/images/hsva-sprite-sm.gif +0 -0
  826. data/closure-library/closure/goog/images/hsva-sprite-sm.png +0 -0
  827. data/closure-library/closure/goog/images/hsva-sprite.gif +0 -0
  828. data/closure-library/closure/goog/images/hsva-sprite.png +0 -0
  829. data/closure-library/closure/goog/images/left_anchor_bubble_bot.gif +0 -0
  830. data/closure-library/closure/goog/images/left_anchor_bubble_top.gif +0 -0
  831. data/closure-library/closure/goog/images/menu-arrows.gif +0 -0
  832. data/closure-library/closure/goog/images/minus.png +0 -0
  833. data/closure-library/closure/goog/images/no_anchor_bubble_bot.gif +0 -0
  834. data/closure-library/closure/goog/images/no_anchor_bubble_top.gif +0 -0
  835. data/closure-library/closure/goog/images/offlineicons.png +0 -0
  836. data/closure-library/closure/goog/images/plus.png +0 -0
  837. data/closure-library/closure/goog/images/ratingstars.gif +0 -0
  838. data/closure-library/closure/goog/images/right_anchor_bubble_bot.gif +0 -0
  839. data/closure-library/closure/goog/images/right_anchor_bubble_top.gif +0 -0
  840. data/closure-library/closure/goog/images/toolbar-bg.png +0 -0
  841. data/closure-library/closure/goog/images/toolbar-separator.gif +0 -0
  842. data/closure-library/closure/goog/images/toolbar_icons.gif +0 -0
  843. data/closure-library/closure/goog/images/tree/I.png +0 -0
  844. data/closure-library/closure/goog/images/tree/cleardot.gif +0 -0
  845. data/closure-library/closure/goog/images/tree/tree.gif +0 -0
  846. data/closure-library/closure/goog/images/tree/tree.png +0 -0
  847. data/closure-library/closure/goog/images/ui_controls.jpg +0 -0
  848. data/closure-library/closure/goog/iter/iter.js +0 -627
  849. data/closure-library/closure/goog/iter/iter_test.html +0 -443
  850. data/closure-library/closure/goog/json/json.js +0 -302
  851. data/closure-library/closure/goog/json/json_test.html +0 -501
  852. data/closure-library/closure/goog/locale/countries.js +0 -288
  853. data/closure-library/closure/goog/locale/countrylanguagenames_test.html +0 -233
  854. data/closure-library/closure/goog/locale/defaultlocalenameconstants.js +0 -847
  855. data/closure-library/closure/goog/locale/genericfontnames.js +0 -73
  856. data/closure-library/closure/goog/locale/genericfontnames_test.html +0 -97
  857. data/closure-library/closure/goog/locale/genericfontnamesdata.js +0 -328
  858. data/closure-library/closure/goog/locale/locale.js +0 -397
  859. data/closure-library/closure/goog/locale/nativenameconstants.js +0 -1354
  860. data/closure-library/closure/goog/locale/scriptToLanguages.js +0 -482
  861. data/closure-library/closure/goog/locale/timezonedetection.js +0 -117
  862. data/closure-library/closure/goog/locale/timezonedetection_test.html +0 -130
  863. data/closure-library/closure/goog/locale/timezonefingerprint.js +0 -250
  864. data/closure-library/closure/goog/locale/timezonelist.js +0 -129
  865. data/closure-library/closure/goog/locale/timezonelist_test.html +0 -165
  866. data/closure-library/closure/goog/math/bezier.js +0 -244
  867. data/closure-library/closure/goog/math/bezier_test.html +0 -70
  868. data/closure-library/closure/goog/math/box.js +0 -236
  869. data/closure-library/closure/goog/math/box_test.html +0 -139
  870. data/closure-library/closure/goog/math/coordinate.js +0 -136
  871. data/closure-library/closure/goog/math/coordinate3.js +0 -168
  872. data/closure-library/closure/goog/math/coordinate3_test.html +0 -208
  873. data/closure-library/closure/goog/math/coordinate_test.html +0 -92
  874. data/closure-library/closure/goog/math/integer.js +0 -736
  875. data/closure-library/closure/goog/math/integer_test.html +0 -1653
  876. data/closure-library/closure/goog/math/line.js +0 -177
  877. data/closure-library/closure/goog/math/line_test.html +0 -62
  878. data/closure-library/closure/goog/math/long.js +0 -801
  879. data/closure-library/closure/goog/math/long_test.html +0 -1571
  880. data/closure-library/closure/goog/math/math.js +0 -355
  881. data/closure-library/closure/goog/math/math_test.html +0 -254
  882. data/closure-library/closure/goog/math/matrix.js +0 -669
  883. data/closure-library/closure/goog/math/matrix_test.html +0 -427
  884. data/closure-library/closure/goog/math/range.js +0 -146
  885. data/closure-library/closure/goog/math/range_test.html +0 -103
  886. data/closure-library/closure/goog/math/rangeset.js +0 -368
  887. data/closure-library/closure/goog/math/rangeset_test.html +0 -619
  888. data/closure-library/closure/goog/math/rect.js +0 -340
  889. data/closure-library/closure/goog/math/rect_test.html +0 -315
  890. data/closure-library/closure/goog/math/size.js +0 -201
  891. data/closure-library/closure/goog/math/size_test.html +0 -174
  892. data/closure-library/closure/goog/math/vec2.js +0 -255
  893. data/closure-library/closure/goog/math/vec2_test.html +0 -203
  894. data/closure-library/closure/goog/math/vec3.js +0 -308
  895. data/closure-library/closure/goog/math/vec3_test.html +0 -231
  896. data/closure-library/closure/goog/memoize/memoize.js +0 -98
  897. data/closure-library/closure/goog/memoize/memoize_test.html +0 -157
  898. data/closure-library/closure/goog/messaging/abstractchannel.js +0 -209
  899. data/closure-library/closure/goog/messaging/abstractchannel_test.html +0 -90
  900. data/closure-library/closure/goog/messaging/bufferedchannel.js +0 -277
  901. data/closure-library/closure/goog/messaging/bufferedchannel_test.html +0 -205
  902. data/closure-library/closure/goog/messaging/deferredchannel.js +0 -79
  903. data/closure-library/closure/goog/messaging/deferredchannel_test.html +0 -107
  904. data/closure-library/closure/goog/messaging/loggerclient.js +0 -131
  905. data/closure-library/closure/goog/messaging/loggerclient_test.html +0 -102
  906. data/closure-library/closure/goog/messaging/loggerserver.js +0 -94
  907. data/closure-library/closure/goog/messaging/loggerserver_test.html +0 -101
  908. data/closure-library/closure/goog/messaging/messagechannel.js +0 -115
  909. data/closure-library/closure/goog/messaging/messaging.js +0 -34
  910. data/closure-library/closure/goog/messaging/messaging_test.html +0 -42
  911. data/closure-library/closure/goog/messaging/multichannel.js +0 -303
  912. data/closure-library/closure/goog/messaging/multichannel_test.html +0 -122
  913. data/closure-library/closure/goog/messaging/portcaller.js +0 -150
  914. data/closure-library/closure/goog/messaging/portcaller_test.html +0 -66
  915. data/closure-library/closure/goog/messaging/portchannel.js +0 -341
  916. data/closure-library/closure/goog/messaging/portchannel_test.html +0 -359
  917. data/closure-library/closure/goog/messaging/portnetwork.js +0 -78
  918. data/closure-library/closure/goog/messaging/portnetwork_test.html +0 -64
  919. data/closure-library/closure/goog/messaging/portoperator.js +0 -196
  920. data/closure-library/closure/goog/messaging/portoperator_test.html +0 -112
  921. data/closure-library/closure/goog/messaging/testdata/portchannel_inner.html +0 -28
  922. data/closure-library/closure/goog/messaging/testdata/portchannel_worker.js +0 -37
  923. data/closure-library/closure/goog/messaging/testdata/portnetwork_inner.html +0 -35
  924. data/closure-library/closure/goog/messaging/testdata/portnetwork_worker1.js +0 -33
  925. data/closure-library/closure/goog/messaging/testdata/portnetwork_worker2.js +0 -33
  926. data/closure-library/closure/goog/module/abstractmoduleloader.js +0 -46
  927. data/closure-library/closure/goog/module/basemodule.js +0 -45
  928. data/closure-library/closure/goog/module/basemoduleloader.js +0 -210
  929. data/closure-library/closure/goog/module/loader.js +0 -269
  930. data/closure-library/closure/goog/module/module.js +0 -166
  931. data/closure-library/closure/goog/module/moduleinfo.js +0 -336
  932. data/closure-library/closure/goog/module/moduleinfo_test.html +0 -109
  933. data/closure-library/closure/goog/module/moduleloadcallback.js +0 -84
  934. data/closure-library/closure/goog/module/moduleloadcallback_test.html +0 -57
  935. data/closure-library/closure/goog/module/moduleloader.js +0 -250
  936. data/closure-library/closure/goog/module/moduleloader_test.html +0 -244
  937. data/closure-library/closure/goog/module/modulemanager.js +0 -1008
  938. data/closure-library/closure/goog/module/modulemanager_test.html +0 -1240
  939. data/closure-library/closure/goog/module/testdata/modA_1.js +0 -22
  940. data/closure-library/closure/goog/module/testdata/modA_2.js +0 -24
  941. data/closure-library/closure/goog/module/testdata/modB_1.js +0 -24
  942. data/closure-library/closure/goog/net/browserchannel.js +0 -2441
  943. data/closure-library/closure/goog/net/browserchannel_test.html +0 -1176
  944. data/closure-library/closure/goog/net/browsertestchannel.js +0 -552
  945. data/closure-library/closure/goog/net/bulkloader.js +0 -174
  946. data/closure-library/closure/goog/net/bulkloader_test.html +0 -232
  947. data/closure-library/closure/goog/net/bulkloaderhelper.js +0 -129
  948. data/closure-library/closure/goog/net/channeldebug.js +0 -288
  949. data/closure-library/closure/goog/net/channelrequest.js +0 -1125
  950. data/closure-library/closure/goog/net/channelrequest_test.html +0 -158
  951. data/closure-library/closure/goog/net/cookies.js +0 -401
  952. data/closure-library/closure/goog/net/cookies_test.html +0 -255
  953. data/closure-library/closure/goog/net/crossdomainrpc.js +0 -848
  954. data/closure-library/closure/goog/net/crossdomainrpc_test.gif +0 -0
  955. data/closure-library/closure/goog/net/crossdomainrpc_test.html +0 -120
  956. data/closure-library/closure/goog/net/crossdomainrpc_test_response.html +0 -59
  957. data/closure-library/closure/goog/net/errorcode.js +0 -130
  958. data/closure-library/closure/goog/net/eventtype.js +0 -37
  959. data/closure-library/closure/goog/net/iframe_xhr_test.html +0 -142
  960. data/closure-library/closure/goog/net/iframe_xhr_test_response.html +0 -17
  961. data/closure-library/closure/goog/net/iframeio.js +0 -1342
  962. data/closure-library/closure/goog/net/iframeio_different_base_test.data +0 -2
  963. data/closure-library/closure/goog/net/iframeio_different_base_test.html +0 -42
  964. data/closure-library/closure/goog/net/iframeio_test.html +0 -368
  965. data/closure-library/closure/goog/net/iframeloadmonitor.js +0 -199
  966. data/closure-library/closure/goog/net/iframeloadmonitor_test.html +0 -113
  967. data/closure-library/closure/goog/net/iframeloadmonitor_test_frame.html +0 -12
  968. data/closure-library/closure/goog/net/iframeloadmonitor_test_frame2.html +0 -12
  969. data/closure-library/closure/goog/net/iframeloadmonitor_test_frame3.html +0 -12
  970. data/closure-library/closure/goog/net/imageloader.js +0 -237
  971. data/closure-library/closure/goog/net/imageloader_test.html +0 -200
  972. data/closure-library/closure/goog/net/imageloader_testimg1.gif +0 -0
  973. data/closure-library/closure/goog/net/imageloader_testimg2.gif +0 -0
  974. data/closure-library/closure/goog/net/imageloader_testimg3.gif +0 -0
  975. data/closure-library/closure/goog/net/jsonp.js +0 -379
  976. data/closure-library/closure/goog/net/jsonp_test.html +0 -328
  977. data/closure-library/closure/goog/net/mockiframeio.js +0 -318
  978. data/closure-library/closure/goog/net/mockxhrlite.js +0 -34
  979. data/closure-library/closure/goog/net/mockxhrlite_test.html +0 -109
  980. data/closure-library/closure/goog/net/multiiframeloadmonitor.js +0 -116
  981. data/closure-library/closure/goog/net/multiiframeloadmonitor_test.html +0 -172
  982. data/closure-library/closure/goog/net/networktester.js +0 -383
  983. data/closure-library/closure/goog/net/networktester_test.html +0 -227
  984. data/closure-library/closure/goog/net/tmpnetwork.js +0 -168
  985. data/closure-library/closure/goog/net/wrapperxmlhttpfactory.js +0 -68
  986. data/closure-library/closure/goog/net/xhrio.js +0 -1093
  987. data/closure-library/closure/goog/net/xhrio_test.html +0 -603
  988. data/closure-library/closure/goog/net/xhriopool.js +0 -87
  989. data/closure-library/closure/goog/net/xhrlite.js +0 -119
  990. data/closure-library/closure/goog/net/xhrlite_test.html +0 -156
  991. data/closure-library/closure/goog/net/xhrlitepool.js +0 -37
  992. data/closure-library/closure/goog/net/xhrmanager.js +0 -763
  993. data/closure-library/closure/goog/net/xhrmonitor.js +0 -254
  994. data/closure-library/closure/goog/net/xhrmonitor_test.html +0 -199
  995. data/closure-library/closure/goog/net/xmlhttp.js +0 -215
  996. data/closure-library/closure/goog/net/xmlhttpfactory.js +0 -64
  997. data/closure-library/closure/goog/net/xpc/crosspagechannel.js +0 -624
  998. data/closure-library/closure/goog/net/xpc/crosspagechannel_test.html +0 -422
  999. data/closure-library/closure/goog/net/xpc/frameelementmethodtransport.js +0 -251
  1000. data/closure-library/closure/goog/net/xpc/iframepollingtransport.js +0 -822
  1001. data/closure-library/closure/goog/net/xpc/iframerelaytransport.js +0 -288
  1002. data/closure-library/closure/goog/net/xpc/nativemessagingtransport.js +0 -280
  1003. data/closure-library/closure/goog/net/xpc/nativemessagingtransport_test.html +0 -164
  1004. data/closure-library/closure/goog/net/xpc/nixtransport.js +0 -454
  1005. data/closure-library/closure/goog/net/xpc/relay.js +0 -72
  1006. data/closure-library/closure/goog/net/xpc/testdata/inner_peer.html +0 -106
  1007. data/closure-library/closure/goog/net/xpc/transport.js +0 -104
  1008. data/closure-library/closure/goog/net/xpc/xpc.js +0 -238
  1009. data/closure-library/closure/goog/object/object.js +0 -553
  1010. data/closure-library/closure/goog/object/object_test.html +0 -376
  1011. data/closure-library/closure/goog/positioning/absoluteposition.js +0 -73
  1012. data/closure-library/closure/goog/positioning/abstractposition.js +0 -47
  1013. data/closure-library/closure/goog/positioning/anchoredposition.js +0 -78
  1014. data/closure-library/closure/goog/positioning/anchoredviewportposition.js +0 -126
  1015. data/closure-library/closure/goog/positioning/anchoredviewportposition_test.html +0 -117
  1016. data/closure-library/closure/goog/positioning/anchoredviewportposition_test_iframe.html +0 -35
  1017. data/closure-library/closure/goog/positioning/clientposition.js +0 -75
  1018. data/closure-library/closure/goog/positioning/menuanchoredposition.js +0 -97
  1019. data/closure-library/closure/goog/positioning/positioning.js +0 -476
  1020. data/closure-library/closure/goog/positioning/positioning_test.html +0 -877
  1021. data/closure-library/closure/goog/positioning/positioning_test_iframe1.html +0 -16
  1022. data/closure-library/closure/goog/positioning/positioning_test_iframe2.html +0 -13
  1023. data/closure-library/closure/goog/positioning/positioning_test_quirk.html +0 -9
  1024. data/closure-library/closure/goog/positioning/positioning_test_standard.html +0 -13
  1025. data/closure-library/closure/goog/positioning/viewportclientposition.js +0 -102
  1026. data/closure-library/closure/goog/positioning/viewportclientposition_test.html +0 -172
  1027. data/closure-library/closure/goog/positioning/viewportposition.js +0 -63
  1028. data/closure-library/closure/goog/proto/proto.js +0 -43
  1029. data/closure-library/closure/goog/proto/serializer.js +0 -68
  1030. data/closure-library/closure/goog/proto/serializer_test.html +0 -43
  1031. data/closure-library/closure/goog/proto2/descriptor.js +0 -198
  1032. data/closure-library/closure/goog/proto2/descriptor_test.html +0 -60
  1033. data/closure-library/closure/goog/proto2/fielddescriptor.js +0 -288
  1034. data/closure-library/closure/goog/proto2/fielddescriptor_test.html +0 -124
  1035. data/closure-library/closure/goog/proto2/lazydeserializer.js +0 -69
  1036. data/closure-library/closure/goog/proto2/message.js +0 -726
  1037. data/closure-library/closure/goog/proto2/message_test.html +0 -356
  1038. data/closure-library/closure/goog/proto2/objectserializer.js +0 -159
  1039. data/closure-library/closure/goog/proto2/objectserializer_test.html +0 -423
  1040. data/closure-library/closure/goog/proto2/package_test.pb.js +0 -164
  1041. data/closure-library/closure/goog/proto2/pbliteserializer.js +0 -150
  1042. data/closure-library/closure/goog/proto2/pbliteserializer_test.html +0 -267
  1043. data/closure-library/closure/goog/proto2/proto_test.html +0 -693
  1044. data/closure-library/closure/goog/proto2/serializer.js +0 -148
  1045. data/closure-library/closure/goog/proto2/test.pb.js +0 -2820
  1046. data/closure-library/closure/goog/proto2/util.js +0 -54
  1047. data/closure-library/closure/goog/pubsub/pubsub.js +0 -326
  1048. data/closure-library/closure/goog/pubsub/pubsub_test.html +0 -635
  1049. data/closure-library/closure/goog/reflect/reflect.js +0 -50
  1050. data/closure-library/closure/goog/spell/spellcheck.js +0 -474
  1051. data/closure-library/closure/goog/spell/spellcheck_test.html +0 -112
  1052. data/closure-library/closure/goog/string/path.js +0 -100
  1053. data/closure-library/closure/goog/string/path_test.html +0 -59
  1054. data/closure-library/closure/goog/string/string.js +0 -1207
  1055. data/closure-library/closure/goog/string/string_test.html +0 -877
  1056. data/closure-library/closure/goog/string/stringbuffer.js +0 -167
  1057. data/closure-library/closure/goog/string/stringbuffer_test.html +0 -101
  1058. data/closure-library/closure/goog/string/stringformat.js +0 -247
  1059. data/closure-library/closure/goog/string/stringformat_test.html +0 -211
  1060. data/closure-library/closure/goog/structs/avltree.js +0 -769
  1061. data/closure-library/closure/goog/structs/avltree_test.html +0 -241
  1062. data/closure-library/closure/goog/structs/circularbuffer.js +0 -219
  1063. data/closure-library/closure/goog/structs/circularbuffer_test.html +0 -105
  1064. data/closure-library/closure/goog/structs/heap.js +0 -332
  1065. data/closure-library/closure/goog/structs/heap_test.html +0 -220
  1066. data/closure-library/closure/goog/structs/inversionmap.js +0 -159
  1067. data/closure-library/closure/goog/structs/inversionmap_test.html +0 -157
  1068. data/closure-library/closure/goog/structs/linkedmap.js +0 -472
  1069. data/closure-library/closure/goog/structs/linkedmap_test.html +0 -300
  1070. data/closure-library/closure/goog/structs/map.js +0 -446
  1071. data/closure-library/closure/goog/structs/map_test.html +0 -430
  1072. data/closure-library/closure/goog/structs/node.js +0 -74
  1073. data/closure-library/closure/goog/structs/pool.js +0 -344
  1074. data/closure-library/closure/goog/structs/pool_test.html +0 -265
  1075. data/closure-library/closure/goog/structs/prioritypool.js +0 -147
  1076. data/closure-library/closure/goog/structs/prioritypool_test.html +0 -478
  1077. data/closure-library/closure/goog/structs/priorityqueue.js +0 -64
  1078. data/closure-library/closure/goog/structs/priorityqueue_test.html +0 -179
  1079. data/closure-library/closure/goog/structs/quadtree.js +0 -571
  1080. data/closure-library/closure/goog/structs/quadtree_test.html +0 -179
  1081. data/closure-library/closure/goog/structs/queue.js +0 -157
  1082. data/closure-library/closure/goog/structs/queue_test.html +0 -140
  1083. data/closure-library/closure/goog/structs/set.js +0 -251
  1084. data/closure-library/closure/goog/structs/set_test.html +0 -551
  1085. data/closure-library/closure/goog/structs/simplepool.js +0 -203
  1086. data/closure-library/closure/goog/structs/stringset.js +0 -404
  1087. data/closure-library/closure/goog/structs/stringset_test.html +0 -251
  1088. data/closure-library/closure/goog/structs/structs.js +0 -341
  1089. data/closure-library/closure/goog/structs/structs_test.html +0 -1050
  1090. data/closure-library/closure/goog/structs/treenode.js +0 -312
  1091. data/closure-library/closure/goog/structs/treenode_test.html +0 -285
  1092. data/closure-library/closure/goog/structs/trie.js +0 -368
  1093. data/closure-library/closure/goog/structs/trie_test.html +0 -378
  1094. data/closure-library/closure/goog/style/cursor.js +0 -125
  1095. data/closure-library/closure/goog/style/cursor_test.html +0 -131
  1096. data/closure-library/closure/goog/style/style.js +0 -1804
  1097. data/closure-library/closure/goog/style/style_quirks_test.html +0 -1928
  1098. data/closure-library/closure/goog/style/style_test.html +0 -2073
  1099. data/closure-library/closure/goog/style/style_test_iframe_quirk.html +0 -29
  1100. data/closure-library/closure/goog/style/style_test_iframe_standard.html +0 -30
  1101. data/closure-library/closure/goog/style/style_test_quirk.html +0 -9
  1102. data/closure-library/closure/goog/style/style_test_standard.html +0 -11
  1103. data/closure-library/closure/goog/testing/asserts.js +0 -970
  1104. data/closure-library/closure/goog/testing/asserts_test.html +0 -966
  1105. data/closure-library/closure/goog/testing/async/mockcontrol.js +0 -174
  1106. data/closure-library/closure/goog/testing/async/mockcontrol_test.html +0 -224
  1107. data/closure-library/closure/goog/testing/asynctestcase.js +0 -812
  1108. data/closure-library/closure/goog/testing/asynctestcase_async_test.html +0 -102
  1109. data/closure-library/closure/goog/testing/asynctestcase_noasync_test.html +0 -98
  1110. data/closure-library/closure/goog/testing/benchmark.js +0 -87
  1111. data/closure-library/closure/goog/testing/benchmarks/jsbinarysizebutton.js +0 -64
  1112. data/closure-library/closure/goog/testing/benchmarks/jsbinarysizebutton_test.html +0 -58
  1113. data/closure-library/closure/goog/testing/benchmarks/jsbinarysizetoolbar.js +0 -66
  1114. data/closure-library/closure/goog/testing/benchmarks/jsbinarysizetoolbar_test.html +0 -49
  1115. data/closure-library/closure/goog/testing/continuationtestcase.js +0 -682
  1116. data/closure-library/closure/goog/testing/continuationtestcase_test.html +0 -349
  1117. data/closure-library/closure/goog/testing/deferredtestcase.js +0 -157
  1118. data/closure-library/closure/goog/testing/deferredtestcase_test.html +0 -152
  1119. data/closure-library/closure/goog/testing/dom.js +0 -596
  1120. data/closure-library/closure/goog/testing/dom_test.html +0 -438
  1121. data/closure-library/closure/goog/testing/editor/dom.js +0 -293
  1122. data/closure-library/closure/goog/testing/editor/dom_test.html +0 -295
  1123. data/closure-library/closure/goog/testing/editor/fieldmock.js +0 -90
  1124. data/closure-library/closure/goog/testing/editor/testhelper.js +0 -168
  1125. data/closure-library/closure/goog/testing/editor/testhelper_test.html +0 -176
  1126. data/closure-library/closure/goog/testing/events/eventobserver.js +0 -85
  1127. data/closure-library/closure/goog/testing/events/eventobserver_test.html +0 -70
  1128. data/closure-library/closure/goog/testing/events/events.js +0 -540
  1129. data/closure-library/closure/goog/testing/events/events_test.html +0 -434
  1130. data/closure-library/closure/goog/testing/events/matchers.js +0 -41
  1131. data/closure-library/closure/goog/testing/events/matchers_test.html +0 -40
  1132. data/closure-library/closure/goog/testing/expectedfailures.js +0 -236
  1133. data/closure-library/closure/goog/testing/expectedfailures_test.html +0 -122
  1134. data/closure-library/closure/goog/testing/fs/blob.js +0 -74
  1135. data/closure-library/closure/goog/testing/fs/blob_test.html +0 -53
  1136. data/closure-library/closure/goog/testing/fs/directoryentry_test.html +0 -185
  1137. data/closure-library/closure/goog/testing/fs/entry.js +0 -511
  1138. data/closure-library/closure/goog/testing/fs/entry_test.html +0 -153
  1139. data/closure-library/closure/goog/testing/fs/file.js +0 -51
  1140. data/closure-library/closure/goog/testing/fs/fileentry_test.html +0 -54
  1141. data/closure-library/closure/goog/testing/fs/filesystem.js +0 -64
  1142. data/closure-library/closure/goog/testing/fs/filewriter.js +0 -314
  1143. data/closure-library/closure/goog/testing/fs/filewriter_test.html +0 -248
  1144. data/closure-library/closure/goog/testing/fs/fs.js +0 -146
  1145. data/closure-library/closure/goog/testing/fs/fs_test.html +0 -54
  1146. data/closure-library/closure/goog/testing/fs/integration_test.html +0 -219
  1147. data/closure-library/closure/goog/testing/functionmock.js +0 -157
  1148. data/closure-library/closure/goog/testing/functionmock_test.html +0 -357
  1149. data/closure-library/closure/goog/testing/graphics.js +0 -64
  1150. data/closure-library/closure/goog/testing/jsunit.js +0 -144
  1151. data/closure-library/closure/goog/testing/loosemock.js +0 -240
  1152. data/closure-library/closure/goog/testing/loosemock_test.html +0 -343
  1153. data/closure-library/closure/goog/testing/messaging/mockmessagechannel.js +0 -77
  1154. data/closure-library/closure/goog/testing/messaging/mockmessageevent.js +0 -100
  1155. data/closure-library/closure/goog/testing/messaging/mockmessageport.js +0 -85
  1156. data/closure-library/closure/goog/testing/messaging/mockportnetwork.js +0 -64
  1157. data/closure-library/closure/goog/testing/mock.js +0 -556
  1158. data/closure-library/closure/goog/testing/mock_test.html +0 -208
  1159. data/closure-library/closure/goog/testing/mockclassfactory.js +0 -580
  1160. data/closure-library/closure/goog/testing/mockclassfactory_test.html +0 -241
  1161. data/closure-library/closure/goog/testing/mockclock.js +0 -395
  1162. data/closure-library/closure/goog/testing/mockclock_test.html +0 -413
  1163. data/closure-library/closure/goog/testing/mockcontrol.js +0 -210
  1164. data/closure-library/closure/goog/testing/mockcontrol_test.html +0 -127
  1165. data/closure-library/closure/goog/testing/mockinterface.js +0 -45
  1166. data/closure-library/closure/goog/testing/mockmatchers.js +0 -395
  1167. data/closure-library/closure/goog/testing/mockmatchers_test.html +0 -388
  1168. data/closure-library/closure/goog/testing/mockrandom.js +0 -128
  1169. data/closure-library/closure/goog/testing/mockrandom_test.html +0 -56
  1170. data/closure-library/closure/goog/testing/mockrange.js +0 -65
  1171. data/closure-library/closure/goog/testing/mockrange_test.html +0 -41
  1172. data/closure-library/closure/goog/testing/mockuseragent.js +0 -143
  1173. data/closure-library/closure/goog/testing/mockuseragent_test.html +0 -59
  1174. data/closure-library/closure/goog/testing/multitestrunner.js +0 -1442
  1175. data/closure-library/closure/goog/testing/net/xhrio.js +0 -595
  1176. data/closure-library/closure/goog/testing/net/xhrio_test.html +0 -321
  1177. data/closure-library/closure/goog/testing/objectpropertystring.js +0 -67
  1178. data/closure-library/closure/goog/testing/performancetable.css +0 -46
  1179. data/closure-library/closure/goog/testing/performancetable.js +0 -162
  1180. data/closure-library/closure/goog/testing/performancetimer.js +0 -166
  1181. data/closure-library/closure/goog/testing/performancetimer_test.html +0 -107
  1182. data/closure-library/closure/goog/testing/propertyreplacer.js +0 -243
  1183. data/closure-library/closure/goog/testing/propertyreplacer_test.html +0 -368
  1184. data/closure-library/closure/goog/testing/pseudorandom.js +0 -162
  1185. data/closure-library/closure/goog/testing/pseudorandom_test.html +0 -98
  1186. data/closure-library/closure/goog/testing/recordfunction.js +0 -194
  1187. data/closure-library/closure/goog/testing/recordfunction_test.html +0 -147
  1188. data/closure-library/closure/goog/testing/singleton.js +0 -82
  1189. data/closure-library/closure/goog/testing/singleton_test.html +0 -39
  1190. data/closure-library/closure/goog/testing/stacktrace.js +0 -470
  1191. data/closure-library/closure/goog/testing/stacktrace_test.html +0 -229
  1192. data/closure-library/closure/goog/testing/strictmock.js +0 -124
  1193. data/closure-library/closure/goog/testing/strictmock_test.html +0 -368
  1194. data/closure-library/closure/goog/testing/style/layoutasserts.js +0 -368
  1195. data/closure-library/closure/goog/testing/style/layoutasserts_test.html +0 -269
  1196. data/closure-library/closure/goog/testing/testcase.js +0 -1053
  1197. data/closure-library/closure/goog/testing/testqueue.js +0 -66
  1198. data/closure-library/closure/goog/testing/testrunner.js +0 -391
  1199. data/closure-library/closure/goog/testing/ui/rendererasserts.js +0 -50
  1200. data/closure-library/closure/goog/testing/ui/rendererasserts_test.html +0 -51
  1201. data/closure-library/closure/goog/testing/ui/rendererharness.js +0 -175
  1202. data/closure-library/closure/goog/testing/ui/style.js +0 -137
  1203. data/closure-library/closure/goog/testing/ui/style_reference.html +0 -27
  1204. data/closure-library/closure/goog/testing/ui/style_test.html +0 -130
  1205. data/closure-library/closure/goog/timer/timer.js +0 -285
  1206. data/closure-library/closure/goog/timer/timer_test.html +0 -118
  1207. data/closure-library/closure/goog/tweak/entries.js +0 -990
  1208. data/closure-library/closure/goog/tweak/entries_test.html +0 -94
  1209. data/closure-library/closure/goog/tweak/registry.js +0 -310
  1210. data/closure-library/closure/goog/tweak/registry_test.html +0 -144
  1211. data/closure-library/closure/goog/tweak/testhelpers.js +0 -111
  1212. data/closure-library/closure/goog/tweak/tweak.js +0 -318
  1213. data/closure-library/closure/goog/tweak/tweakui.js +0 -817
  1214. data/closure-library/closure/goog/tweak/tweakui_test.html +0 -280
  1215. data/closure-library/closure/goog/ui/abstractspellchecker.js +0 -1069
  1216. data/closure-library/closure/goog/ui/activitymonitor.js +0 -286
  1217. data/closure-library/closure/goog/ui/activitymonitor_test.html +0 -44
  1218. data/closure-library/closure/goog/ui/advancedtooltip.js +0 -368
  1219. data/closure-library/closure/goog/ui/advancedtooltip_test.html +0 -274
  1220. data/closure-library/closure/goog/ui/animatedzippy.js +0 -190
  1221. data/closure-library/closure/goog/ui/attachablemenu.js +0 -464
  1222. data/closure-library/closure/goog/ui/autocomplete/arraymatcher.js +0 -156
  1223. data/closure-library/closure/goog/ui/autocomplete/arraymatcher_test.html +0 -130
  1224. data/closure-library/closure/goog/ui/autocomplete/autocomplete.js +0 -627
  1225. data/closure-library/closure/goog/ui/autocomplete/autocomplete_test.html +0 -537
  1226. data/closure-library/closure/goog/ui/autocomplete/basic.js +0 -53
  1227. data/closure-library/closure/goog/ui/autocomplete/basic_test.html +0 -204
  1228. data/closure-library/closure/goog/ui/autocomplete/inputhandler.js +0 -1209
  1229. data/closure-library/closure/goog/ui/autocomplete/inputhandler_test.html +0 -555
  1230. data/closure-library/closure/goog/ui/autocomplete/remote.js +0 -117
  1231. data/closure-library/closure/goog/ui/autocomplete/remotearraymatcher.js +0 -273
  1232. data/closure-library/closure/goog/ui/autocomplete/remotearraymatcher_test.html +0 -73
  1233. data/closure-library/closure/goog/ui/autocomplete/renderer.js +0 -852
  1234. data/closure-library/closure/goog/ui/autocomplete/renderer_test.html +0 -386
  1235. data/closure-library/closure/goog/ui/autocomplete/richinputhandler.js +0 -59
  1236. data/closure-library/closure/goog/ui/autocomplete/richremote.js +0 -108
  1237. data/closure-library/closure/goog/ui/autocomplete/richremotearraymatcher.js +0 -126
  1238. data/closure-library/closure/goog/ui/basicmenu.js +0 -930
  1239. data/closure-library/closure/goog/ui/bidiinput.js +0 -164
  1240. data/closure-library/closure/goog/ui/bubble.js +0 -475
  1241. data/closure-library/closure/goog/ui/button.js +0 -208
  1242. data/closure-library/closure/goog/ui/button_test.html +0 -257
  1243. data/closure-library/closure/goog/ui/buttonrenderer.js +0 -205
  1244. data/closure-library/closure/goog/ui/buttonrenderer_test.html +0 -190
  1245. data/closure-library/closure/goog/ui/buttonside.js +0 -40
  1246. data/closure-library/closure/goog/ui/cccbutton.js +0 -281
  1247. data/closure-library/closure/goog/ui/charcounter.js +0 -200
  1248. data/closure-library/closure/goog/ui/charpicker.js +0 -807
  1249. data/closure-library/closure/goog/ui/checkbox.js +0 -303
  1250. data/closure-library/closure/goog/ui/checkbox_test.html +0 -224
  1251. data/closure-library/closure/goog/ui/checkboxmenuitem.js +0 -53
  1252. data/closure-library/closure/goog/ui/colorbutton.js +0 -58
  1253. data/closure-library/closure/goog/ui/colorbutton_test.html +0 -70
  1254. data/closure-library/closure/goog/ui/colorbuttonrenderer.js +0 -72
  1255. data/closure-library/closure/goog/ui/colormenubutton.js +0 -213
  1256. data/closure-library/closure/goog/ui/colormenubuttonrenderer.js +0 -144
  1257. data/closure-library/closure/goog/ui/colormenubuttonrenderer_test.html +0 -88
  1258. data/closure-library/closure/goog/ui/colorpalette.js +0 -162
  1259. data/closure-library/closure/goog/ui/colorpalette_test.html +0 -169
  1260. data/closure-library/closure/goog/ui/colorpicker.js +0 -344
  1261. data/closure-library/closure/goog/ui/colorsplitbehavior.js +0 -61
  1262. data/closure-library/closure/goog/ui/combobox.js +0 -894
  1263. data/closure-library/closure/goog/ui/combobox_test.html +0 -208
  1264. data/closure-library/closure/goog/ui/component.js +0 -1187
  1265. data/closure-library/closure/goog/ui/component_test.html +0 -723
  1266. data/closure-library/closure/goog/ui/container.js +0 -1296
  1267. data/closure-library/closure/goog/ui/container_test.html +0 -450
  1268. data/closure-library/closure/goog/ui/containerrenderer.js +0 -370
  1269. data/closure-library/closure/goog/ui/containerrenderer_test.html +0 -227
  1270. data/closure-library/closure/goog/ui/containerscroller.js +0 -221
  1271. data/closure-library/closure/goog/ui/containerscroller_test.html +0 -213
  1272. data/closure-library/closure/goog/ui/control.js +0 -1348
  1273. data/closure-library/closure/goog/ui/control_test.html +0 -2128
  1274. data/closure-library/closure/goog/ui/controlcontent.js +0 -28
  1275. data/closure-library/closure/goog/ui/controlrenderer.js +0 -808
  1276. data/closure-library/closure/goog/ui/controlrenderer_test.html +0 -840
  1277. data/closure-library/closure/goog/ui/cookieeditor.js +0 -182
  1278. data/closure-library/closure/goog/ui/cookieeditor_test.html +0 -102
  1279. data/closure-library/closure/goog/ui/css3buttonrenderer.js +0 -147
  1280. data/closure-library/closure/goog/ui/css3menubuttonrenderer.js +0 -144
  1281. data/closure-library/closure/goog/ui/cssnames.js +0 -28
  1282. data/closure-library/closure/goog/ui/custombutton.js +0 -58
  1283. data/closure-library/closure/goog/ui/custombuttonrenderer.js +0 -254
  1284. data/closure-library/closure/goog/ui/customcolorpalette.js +0 -137
  1285. data/closure-library/closure/goog/ui/customcolorpalette_test.html +0 -60
  1286. data/closure-library/closure/goog/ui/datepicker.js +0 -1339
  1287. data/closure-library/closure/goog/ui/datepicker_test.html +0 -190
  1288. data/closure-library/closure/goog/ui/decorate.js +0 -37
  1289. data/closure-library/closure/goog/ui/decorate_test.html +0 -113
  1290. data/closure-library/closure/goog/ui/deprecatedbutton.js +0 -381
  1291. data/closure-library/closure/goog/ui/dialog.js +0 -1776
  1292. data/closure-library/closure/goog/ui/dialog_test.html +0 -493
  1293. data/closure-library/closure/goog/ui/dimensionpicker.js +0 -289
  1294. data/closure-library/closure/goog/ui/dimensionpicker_test.html +0 -128
  1295. data/closure-library/closure/goog/ui/dimensionpickerrenderer.js +0 -387
  1296. data/closure-library/closure/goog/ui/dragdropdetector.js +0 -642
  1297. data/closure-library/closure/goog/ui/drilldownrow.js +0 -494
  1298. data/closure-library/closure/goog/ui/editor/abstractdialog.js +0 -443
  1299. data/closure-library/closure/goog/ui/editor/abstractdialog_test.html +0 -467
  1300. data/closure-library/closure/goog/ui/editor/bubble.js +0 -520
  1301. data/closure-library/closure/goog/ui/editor/bubble_test.html +0 -264
  1302. data/closure-library/closure/goog/ui/editor/defaulttoolbar.js +0 -1062
  1303. data/closure-library/closure/goog/ui/editor/linkdialog.js +0 -833
  1304. data/closure-library/closure/goog/ui/editor/linkdialog_test.html +0 -449
  1305. data/closure-library/closure/goog/ui/editor/messages.js +0 -115
  1306. data/closure-library/closure/goog/ui/editor/tabpane.js +0 -183
  1307. data/closure-library/closure/goog/ui/editor/toolbarcontroller.js +0 -293
  1308. data/closure-library/closure/goog/ui/editor/toolbarfactory.js +0 -437
  1309. data/closure-library/closure/goog/ui/editor/toolbarfactory_test.html +0 -73
  1310. data/closure-library/closure/goog/ui/emoji/emoji.js +0 -72
  1311. data/closure-library/closure/goog/ui/emoji/emojipalette.js +0 -298
  1312. data/closure-library/closure/goog/ui/emoji/emojipaletterenderer.js +0 -206
  1313. data/closure-library/closure/goog/ui/emoji/emojipicker.js +0 -797
  1314. data/closure-library/closure/goog/ui/emoji/emojipicker_test.html +0 -840
  1315. data/closure-library/closure/goog/ui/emoji/fast_nonprogressive_emojipicker_test.html +0 -256
  1316. data/closure-library/closure/goog/ui/emoji/fast_progressive_emojipicker_test.html +0 -256
  1317. data/closure-library/closure/goog/ui/emoji/popupemojipicker.js +0 -410
  1318. data/closure-library/closure/goog/ui/emoji/popupemojipicker_test.html +0 -80
  1319. data/closure-library/closure/goog/ui/emoji/progressiveemojipaletterenderer.js +0 -97
  1320. data/closure-library/closure/goog/ui/emoji/spriteinfo.js +0 -212
  1321. data/closure-library/closure/goog/ui/emoji/spriteinfo_test.html +0 -51
  1322. data/closure-library/closure/goog/ui/filteredmenu.js +0 -562
  1323. data/closure-library/closure/goog/ui/filteredmenu_test.html +0 -299
  1324. data/closure-library/closure/goog/ui/filterobservingmenuitem.js +0 -97
  1325. data/closure-library/closure/goog/ui/filterobservingmenuitemrenderer.js +0 -60
  1326. data/closure-library/closure/goog/ui/flatbuttonrenderer.js +0 -138
  1327. data/closure-library/closure/goog/ui/flatmenubuttonrenderer.js +0 -199
  1328. data/closure-library/closure/goog/ui/formpost.js +0 -109
  1329. data/closure-library/closure/goog/ui/formpost_test.html +0 -109
  1330. data/closure-library/closure/goog/ui/gauge.js +0 -999
  1331. data/closure-library/closure/goog/ui/gaugetheme.js +0 -169
  1332. data/closure-library/closure/goog/ui/hovercard.js +0 -447
  1333. data/closure-library/closure/goog/ui/hovercard_test.html +0 -343
  1334. data/closure-library/closure/goog/ui/hsvapalette.js +0 -311
  1335. data/closure-library/closure/goog/ui/hsvapalette_test.html +0 -152
  1336. data/closure-library/closure/goog/ui/hsvpalette.js +0 -470
  1337. data/closure-library/closure/goog/ui/hsvpalette_test.html +0 -202
  1338. data/closure-library/closure/goog/ui/idgenerator.js +0 -57
  1339. data/closure-library/closure/goog/ui/idletimer.js +0 -299
  1340. data/closure-library/closure/goog/ui/idletimer_test.html +0 -100
  1341. data/closure-library/closure/goog/ui/iframemask.js +0 -256
  1342. data/closure-library/closure/goog/ui/iframemask_test.html +0 -230
  1343. data/closure-library/closure/goog/ui/imagelessbuttonrenderer.js +0 -204
  1344. data/closure-library/closure/goog/ui/imagelessmenubuttonrenderer.js +0 -202
  1345. data/closure-library/closure/goog/ui/imagelessroundedcorner.js +0 -971
  1346. data/closure-library/closure/goog/ui/inputdatepicker.js +0 -306
  1347. data/closure-library/closure/goog/ui/inputdatepicker_test.html +0 -109
  1348. data/closure-library/closure/goog/ui/itemevent.js +0 -50
  1349. data/closure-library/closure/goog/ui/keyboardshortcuthandler.js +0 -981
  1350. data/closure-library/closure/goog/ui/keyboardshortcuthandler_test.html +0 -671
  1351. data/closure-library/closure/goog/ui/labelinput.js +0 -439
  1352. data/closure-library/closure/goog/ui/linkbuttonrenderer.js +0 -67
  1353. data/closure-library/closure/goog/ui/media/flashobject.js +0 -629
  1354. data/closure-library/closure/goog/ui/media/flashobject_test.html +0 -236
  1355. data/closure-library/closure/goog/ui/media/flickr.js +0 -309
  1356. data/closure-library/closure/goog/ui/media/flickr_test.html +0 -90
  1357. data/closure-library/closure/goog/ui/media/media.js +0 -284
  1358. data/closure-library/closure/goog/ui/media/media_test.html +0 -161
  1359. data/closure-library/closure/goog/ui/media/mediamodel.js +0 -840
  1360. data/closure-library/closure/goog/ui/media/mp3.js +0 -225
  1361. data/closure-library/closure/goog/ui/media/mp3_test.html +0 -78
  1362. data/closure-library/closure/goog/ui/media/photo.js +0 -139
  1363. data/closure-library/closure/goog/ui/media/photo_test.html +0 -62
  1364. data/closure-library/closure/goog/ui/media/picasa.js +0 -317
  1365. data/closure-library/closure/goog/ui/media/picasa_test.html +0 -131
  1366. data/closure-library/closure/goog/ui/media/vimeo.js +0 -264
  1367. data/closure-library/closure/goog/ui/media/vimeo_test.html +0 -79
  1368. data/closure-library/closure/goog/ui/media/youtube.js +0 -328
  1369. data/closure-library/closure/goog/ui/media/youtube_test.html +0 -185
  1370. data/closure-library/closure/goog/ui/menu.js +0 -435
  1371. data/closure-library/closure/goog/ui/menu_test.html +0 -129
  1372. data/closure-library/closure/goog/ui/menubase.js +0 -191
  1373. data/closure-library/closure/goog/ui/menubutton.js +0 -815
  1374. data/closure-library/closure/goog/ui/menubutton_test.html +0 -440
  1375. data/closure-library/closure/goog/ui/menubutton_test_frame.html +0 -41
  1376. data/closure-library/closure/goog/ui/menubuttonrenderer.js +0 -226
  1377. data/closure-library/closure/goog/ui/menubuttonrenderer_test.html +0 -161
  1378. data/closure-library/closure/goog/ui/menuheader.js +0 -62
  1379. data/closure-library/closure/goog/ui/menuheaderrenderer.js +0 -55
  1380. data/closure-library/closure/goog/ui/menuitem.js +0 -154
  1381. data/closure-library/closure/goog/ui/menuitem_test.html +0 -506
  1382. data/closure-library/closure/goog/ui/menuitemrenderer.js +0 -353
  1383. data/closure-library/closure/goog/ui/menuitemrenderer_test.html +0 -190
  1384. data/closure-library/closure/goog/ui/menurenderer.js +0 -118
  1385. data/closure-library/closure/goog/ui/menuseparator.js +0 -51
  1386. data/closure-library/closure/goog/ui/menuseparatorrenderer.js +0 -102
  1387. data/closure-library/closure/goog/ui/mockactivitymonitor.js +0 -54
  1388. data/closure-library/closure/goog/ui/nativebuttonrenderer.js +0 -205
  1389. data/closure-library/closure/goog/ui/nativebuttonrenderer_test.html +0 -213
  1390. data/closure-library/closure/goog/ui/offlineinstalldialog.js +0 -1086
  1391. data/closure-library/closure/goog/ui/offlinestatuscard.js +0 -580
  1392. data/closure-library/closure/goog/ui/offlinestatuscomponent.js +0 -545
  1393. data/closure-library/closure/goog/ui/option.js +0 -67
  1394. data/closure-library/closure/goog/ui/palette.js +0 -528
  1395. data/closure-library/closure/goog/ui/paletterenderer.js +0 -318
  1396. data/closure-library/closure/goog/ui/plaintextspellchecker.js +0 -668
  1397. data/closure-library/closure/goog/ui/plaintextspellchecker_test.html +0 -240
  1398. data/closure-library/closure/goog/ui/popup.js +0 -410
  1399. data/closure-library/closure/goog/ui/popup_test.html +0 -137
  1400. data/closure-library/closure/goog/ui/popupbase.js +0 -721
  1401. data/closure-library/closure/goog/ui/popupbase_test.html +0 -186
  1402. data/closure-library/closure/goog/ui/popupcolorpicker.js +0 -441
  1403. data/closure-library/closure/goog/ui/popupcolorpicker_test.html +0 -71
  1404. data/closure-library/closure/goog/ui/popupdatepicker.js +0 -273
  1405. data/closure-library/closure/goog/ui/popupmenu.js +0 -539
  1406. data/closure-library/closure/goog/ui/popupmenu_test.html +0 -197
  1407. data/closure-library/closure/goog/ui/progressbar.js +0 -390
  1408. data/closure-library/closure/goog/ui/prompt.js +0 -307
  1409. data/closure-library/closure/goog/ui/prompt_test.html +0 -65
  1410. data/closure-library/closure/goog/ui/rangemodel.js +0 -301
  1411. data/closure-library/closure/goog/ui/rangemodel_test.html +0 -270
  1412. data/closure-library/closure/goog/ui/ratings.js +0 -441
  1413. data/closure-library/closure/goog/ui/registry.js +0 -166
  1414. data/closure-library/closure/goog/ui/registry_test.html +0 -236
  1415. data/closure-library/closure/goog/ui/richtextspellchecker.js +0 -600
  1416. data/closure-library/closure/goog/ui/richtextspellchecker_test.html +0 -224
  1417. data/closure-library/closure/goog/ui/roundedcorners.js +0 -694
  1418. data/closure-library/closure/goog/ui/roundedpanel.js +0 -609
  1419. data/closure-library/closure/goog/ui/roundedpanel_test.html +0 -57
  1420. data/closure-library/closure/goog/ui/roundedtabrenderer.js +0 -196
  1421. data/closure-library/closure/goog/ui/scrollfloater.js +0 -394
  1422. data/closure-library/closure/goog/ui/scrollfloater_test.html +0 -46
  1423. data/closure-library/closure/goog/ui/select.js +0 -397
  1424. data/closure-library/closure/goog/ui/select_test.html +0 -152
  1425. data/closure-library/closure/goog/ui/selectionmenubutton.js +0 -277
  1426. data/closure-library/closure/goog/ui/selectionmenubutton_test.html +0 -237
  1427. data/closure-library/closure/goog/ui/selectionmodel.js +0 -291
  1428. data/closure-library/closure/goog/ui/separator.js +0 -74
  1429. data/closure-library/closure/goog/ui/serverchart.js +0 -1791
  1430. data/closure-library/closure/goog/ui/serverchart_test.html +0 -598
  1431. data/closure-library/closure/goog/ui/slider.js +0 -125
  1432. data/closure-library/closure/goog/ui/sliderbase.js +0 -1087
  1433. data/closure-library/closure/goog/ui/sliderbase_test.html +0 -198
  1434. data/closure-library/closure/goog/ui/splitbehavior.js +0 -348
  1435. data/closure-library/closure/goog/ui/splitbehavior_test.html +0 -161
  1436. data/closure-library/closure/goog/ui/splitpane.js +0 -844
  1437. data/closure-library/closure/goog/ui/splitpane_test.html +0 -143
  1438. data/closure-library/closure/goog/ui/style/app/buttonrenderer.js +0 -204
  1439. data/closure-library/closure/goog/ui/style/app/buttonrenderer_test.html +0 -155
  1440. data/closure-library/closure/goog/ui/style/app/menubuttonrenderer.js +0 -227
  1441. data/closure-library/closure/goog/ui/style/app/menubuttonrenderer_test.html +0 -167
  1442. data/closure-library/closure/goog/ui/style/app/primaryactionbuttonrenderer.js +0 -88
  1443. data/closure-library/closure/goog/ui/style/app/primaryactionbuttonrenderer_test.html +0 -76
  1444. data/closure-library/closure/goog/ui/submenu.js +0 -660
  1445. data/closure-library/closure/goog/ui/submenu_test.html +0 -446
  1446. data/closure-library/closure/goog/ui/submenurenderer.js +0 -188
  1447. data/closure-library/closure/goog/ui/tab.js +0 -102
  1448. data/closure-library/closure/goog/ui/tab_test.html +0 -61
  1449. data/closure-library/closure/goog/ui/tabbar.js +0 -393
  1450. data/closure-library/closure/goog/ui/tabbar_test.html +0 -611
  1451. data/closure-library/closure/goog/ui/tabbarrenderer.js +0 -173
  1452. data/closure-library/closure/goog/ui/tabbarrenderer_test.html +0 -137
  1453. data/closure-library/closure/goog/ui/tablesorter.js +0 -304
  1454. data/closure-library/closure/goog/ui/tablesorter_test.html +0 -127
  1455. data/closure-library/closure/goog/ui/tabpane.js +0 -674
  1456. data/closure-library/closure/goog/ui/tabpane_test.html +0 -107
  1457. data/closure-library/closure/goog/ui/tabrenderer.js +0 -152
  1458. data/closure-library/closure/goog/ui/tabrenderer_test.html +0 -132
  1459. data/closure-library/closure/goog/ui/textarea.js +0 -573
  1460. data/closure-library/closure/goog/ui/textarea_test.html +0 -305
  1461. data/closure-library/closure/goog/ui/textarearenderer.js +0 -167
  1462. data/closure-library/closure/goog/ui/togglebutton.js +0 -58
  1463. data/closure-library/closure/goog/ui/toolbar.js +0 -45
  1464. data/closure-library/closure/goog/ui/toolbarbutton.js +0 -54
  1465. data/closure-library/closure/goog/ui/toolbarbuttonrenderer.js +0 -55
  1466. data/closure-library/closure/goog/ui/toolbarcolormenubutton.js +0 -57
  1467. data/closure-library/closure/goog/ui/toolbarcolormenubuttonrenderer.js +0 -95
  1468. data/closure-library/closure/goog/ui/toolbarcolormenubuttonrenderer_test.html +0 -66
  1469. data/closure-library/closure/goog/ui/toolbarmenubutton.js +0 -56
  1470. data/closure-library/closure/goog/ui/toolbarmenubuttonrenderer.js +0 -55
  1471. data/closure-library/closure/goog/ui/toolbarrenderer.js +0 -95
  1472. data/closure-library/closure/goog/ui/toolbarselect.js +0 -55
  1473. data/closure-library/closure/goog/ui/toolbarseparator.js +0 -51
  1474. data/closure-library/closure/goog/ui/toolbarseparatorrenderer.js +0 -87
  1475. data/closure-library/closure/goog/ui/toolbartogglebutton.js +0 -53
  1476. data/closure-library/closure/goog/ui/tooltip.js +0 -975
  1477. data/closure-library/closure/goog/ui/tooltip_test.html +0 -351
  1478. data/closure-library/closure/goog/ui/tree/basenode.js +0 -1457
  1479. data/closure-library/closure/goog/ui/tree/basenode_test.html +0 -218
  1480. data/closure-library/closure/goog/ui/tree/treecontrol.js +0 -656
  1481. data/closure-library/closure/goog/ui/tree/treecontrol_test.html +0 -113
  1482. data/closure-library/closure/goog/ui/tree/treenode.js +0 -102
  1483. data/closure-library/closure/goog/ui/tree/typeahead.js +0 -332
  1484. data/closure-library/closure/goog/ui/tree/typeahead_test.html +0 -133
  1485. data/closure-library/closure/goog/ui/tristatemenuitem.js +0 -185
  1486. data/closure-library/closure/goog/ui/tristatemenuitemrenderer.js +0 -86
  1487. data/closure-library/closure/goog/ui/twothumbslider.js +0 -134
  1488. data/closure-library/closure/goog/ui/zippy.js +0 -277
  1489. data/closure-library/closure/goog/ui/zippy_test.html +0 -223
  1490. data/closure-library/closure/goog/uri/uri.js +0 -1595
  1491. data/closure-library/closure/goog/uri/uri_test.html +0 -837
  1492. data/closure-library/closure/goog/uri/utils.js +0 -972
  1493. data/closure-library/closure/goog/uri/utils_test.html +0 -521
  1494. data/closure-library/closure/goog/useragent/adobereader.js +0 -90
  1495. data/closure-library/closure/goog/useragent/adobereader_test.html +0 -34
  1496. data/closure-library/closure/goog/useragent/flash.js +0 -113
  1497. data/closure-library/closure/goog/useragent/flash_test.html +0 -34
  1498. data/closure-library/closure/goog/useragent/iphoto.js +0 -86
  1499. data/closure-library/closure/goog/useragent/jscript.js +0 -94
  1500. data/closure-library/closure/goog/useragent/jscript_test.html +0 -65
  1501. data/closure-library/closure/goog/useragent/picasa.js +0 -111
  1502. data/closure-library/closure/goog/useragent/platform.js +0 -70
  1503. data/closure-library/closure/goog/useragent/platform_test.html +0 -108
  1504. data/closure-library/closure/goog/useragent/product.js +0 -253
  1505. data/closure-library/closure/goog/useragent/product_isversion.js +0 -99
  1506. data/closure-library/closure/goog/useragent/product_test.html +0 -322
  1507. data/closure-library/closure/goog/useragent/useragent.js +0 -464
  1508. data/closure-library/closure/goog/useragent/useragent_test.html +0 -290
  1509. data/closure-library/closure/goog/window/window.js +0 -206
  1510. data/closure-library/closure/goog/window/window_test.html +0 -185
  1511. data/closure-library/third_party/closure/goog/base.js +0 -2
  1512. data/closure-library/third_party/closure/goog/caja/string/html/htmlparser.js +0 -611
  1513. data/closure-library/third_party/closure/goog/caja/string/html/htmlsanitizer.js +0 -605
  1514. data/closure-library/third_party/closure/goog/deps.js +0 -26
  1515. data/closure-library/third_party/closure/goog/dojo/dom/query.js +0 -1537
  1516. data/closure-library/third_party/closure/goog/dojo/dom/query_test.html +0 -63
  1517. data/closure-library/third_party/closure/goog/dojo/dom/query_test.js +0 -160
  1518. data/closure-library/third_party/closure/goog/jpeg_encoder/jpeg_encoder_basic.js +0 -751
  1519. data/closure-library/third_party/closure/goog/loremipsum/text/loremipsum.js +0 -712
  1520. data/closure-library/third_party/closure/goog/loremipsum/text/loremipsum_test.html +0 -61
  1521. data/closure-library/third_party/closure/goog/mochikit/async/deferred.js +0 -530
  1522. data/closure-library/third_party/closure/goog/mochikit/async/deferred_test.html +0 -627
  1523. data/closure-library/third_party/closure/goog/mochikit/async/deferredlist.js +0 -199
  1524. data/closure-library/third_party/closure/goog/mochikit/async/deferredlist_test.html +0 -426
  1525. data/closure-library/third_party/closure/goog/osapi/osapi.js +0 -91
  1526. data/closure-library/third_party/closure/goog/silverlight/AppManifest.xml +0 -6
  1527. data/closure-library/third_party/closure/goog/silverlight/AssemblyInfo.cs +0 -35
  1528. data/closure-library/third_party/closure/goog/silverlight/ClipboardButton.xaml +0 -9
  1529. data/closure-library/third_party/closure/goog/silverlight/ClipboardButton.xaml.cs +0 -74
  1530. data/closure-library/third_party/closure/goog/silverlight/ClipboardButtonApp.xaml +0 -8
  1531. data/closure-library/third_party/closure/goog/silverlight/ClipboardButtonApp.xaml.cs +0 -75
  1532. data/closure-library/third_party/closure/goog/silverlight/ClosureClipboardButton.csproj +0 -108
  1533. data/closure-library/third_party/closure/goog/silverlight/ClosureClipboardButton.csproj.user +0 -29
  1534. data/closure-library/third_party/closure/goog/silverlight/clipboardbutton.js +0 -279
  1535. data/closure-library/third_party/closure/goog/silverlight/silverlight.js +0 -758
  1536. data/closure-library/third_party/closure/goog/silverlight/supporteduseragent.js +0 -138
  1537. data/closure-library/third_party/closure/goog/silverlight/xap_files +0 -0
  1538. data/closure.gemspec +0 -19
  1539. data/config.ru +0 -40
  1540. data/java_src/ClosureScript.java +0 -89
  1541. data/java_src/make.rb +0 -19
  1542. data/lib/closure/sass.rb +0 -56
  1543. data/lib/closure.jar +0 -0
  1544. data/scripts/demos/compiler.build +0 -1
  1545. data/scripts/demos/compiler.debug +0 -24
  1546. data/scripts/demos/compiler.js.erb +0 -22
  1547. data/scripts/demos/compiler.map +0 -114
  1548. data/scripts/demos/deps.js.erb +0 -1
  1549. data/scripts/demos/googly.erb +0 -19
  1550. data/scripts/demos/googly.js +0 -24
  1551. data/scripts/demos/helloworld.erb +0 -24
  1552. data/scripts/demos/helloworld.js +0 -58
  1553. data/scripts/demos/helloworld.soy +0 -45
  1554. data/scripts/demos/index.erb +0 -29
  1555. data/scripts/externs/jquery.externs +0 -4
  1556. data/scripts/fixtures/_partial.haml +0 -2
  1557. data/scripts/fixtures/erb.html.erb +0 -8
  1558. data/scripts/fixtures/haml.haml +0 -6
  1559. data/scripts/fixtures/html.html +0 -9
  1560. data/scripts/fixtures/route_js.js.erb +0 -1
  1561. data/test/beanshell_test.rb +0 -22
  1562. data/test/server_test.rb +0 -67
  1563. data/test/sources_test.rb +0 -41
  1564. data/test/test_helper.rb +0 -12
  1565. /data/{scripts/externs → externs}/jquery-ui.externs +0 -0
  1566. /data/scripts/{demos/jquery.js → jquery/jquery_1.4.4.js} +0 -0
@@ -1,2128 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <!--
4
- Copyright 2008 The Closure Library Authors. All Rights Reserved.
5
-
6
- Use of this source code is governed by the Apache License, Version 2.0.
7
- See the COPYING file for details.
8
- -->
9
- <!--
10
- -->
11
- <head>
12
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
13
- <title>Closure Unit Tests - goog.ui.Control</title>
14
- <script src="../base.js"></script>
15
- <script>
16
- goog.require('goog.dom');
17
- goog.require('goog.dom.classes');
18
- goog.require('goog.events');
19
- goog.require('goog.events.KeyCodes');
20
- goog.require('goog.events.BrowserEvent.MouseButton');
21
- goog.require('goog.object');
22
- goog.require('goog.style');
23
- goog.require('goog.testing.ExpectedFailures');
24
- goog.require('goog.testing.events');
25
- goog.require('goog.testing.jsunit');
26
- goog.require('goog.ui.Component.EventType');
27
- goog.require('goog.ui.Component.State');
28
- goog.require('goog.ui.Control');
29
- goog.require('goog.ui.ControlRenderer');
30
- goog.require('goog.ui.registry');
31
- goog.require('goog.userAgent');
32
- </script>
33
- </head>
34
- <body>
35
- <div id="sandbox"></div>
36
- <script>
37
-
38
- // Disabled due to problems on farm.
39
- var testFocus = false;
40
-
41
- var control;
42
-
43
- var ALL_EVENTS = goog.object.getValues(goog.ui.Component.EventType);
44
- var events = {};
45
- var expectedFailures = new goog.testing.ExpectedFailures();
46
- var sandbox = document.getElementById('sandbox');
47
-
48
- /**
49
- * A dummy renderer, for testing purposes.
50
- * @constructor
51
- * @extends {goog.ui.ControlRenderer}
52
- */
53
- function TestRenderer() {
54
- goog.ui.ControlRenderer.call(this);
55
- }
56
- goog.inherits(TestRenderer, goog.ui.ControlRenderer);
57
-
58
- /**
59
- * Initializes the testcase prior to execution.
60
- */
61
- function setUp() {
62
- control = new goog.ui.Control('Hello');
63
- control.setDispatchTransitionEvents(goog.ui.Component.State.ALL, true);
64
- goog.events.listen(control, ALL_EVENTS, countEvent);
65
- }
66
-
67
- /**
68
- * Cleans up after executing the testcase.
69
- */
70
- function tearDown() {
71
- control.dispose();
72
- expectedFailures.handleTearDown();
73
- goog.dom.removeChildren(sandbox);
74
- goog.events.removeAll();
75
- resetEventCount();
76
- }
77
-
78
- /**
79
- * Resets the global counter for events dispatched by test objects.
80
- */
81
- function resetEventCount() {
82
- goog.object.clear(events);
83
- }
84
-
85
- /**
86
- * Increments the global counter for events of this type.
87
- * @param {goog.events.Event} e Event to count.
88
- */
89
- function countEvent(e) {
90
- var type = e.type;
91
- var target = e.target;
92
-
93
- if (!events[target]) {
94
- events[target] = {};
95
- }
96
-
97
- if (events[target][type]) {
98
- events[target][type]++;
99
- } else {
100
- events[target][type] = 1;
101
- }
102
- }
103
-
104
- /**
105
- * Returns the number of times test objects dispatched events of the given
106
- * type since the global counter was last reset.
107
- * @param {goog.ui.Control} target Event target.
108
- * @param {string} type Event type.
109
- * @return {number} Number of events of this type.
110
- */
111
- function getEventCount(target, type) {
112
- return events[target] && events[target][type] || 0;
113
- }
114
-
115
- /**
116
- * Returns true if no events were dispatched since the last reset.
117
- * @return {boolean} Whether no events have been dispatched since the last
118
- * reset.
119
- */
120
- function noEventsDispatched() {
121
- return !events || goog.object.isEmpty(events);
122
- }
123
-
124
- /**
125
- * Returns the number of event listeners created by the control.
126
- * @param {goog.ui.Control} control Control whose event listers are to be
127
- * counted.
128
- * @return {number} Number of event listeners.
129
- */
130
- function getListenerCount(control) {
131
- return control.googUiComponentHandler_ ?
132
- goog.object.getCount(control.getHandler().keys_) : 0;
133
- }
134
-
135
- /**
136
- * Simulates a mousedown event on the given element, including focusing it.
137
- * @param {Element} element Element on which to simulate mousedown.
138
- * @param {goog.events.BrowserEvent.MouseButton=} opt_button Mouse button;
139
- * defaults to {@code goog.events.BrowserEvent.MouseButton.LEFT}.
140
- * @return {boolean} Whether the event was allowed to proceed.
141
- */
142
- function fireMouseDownAndFocus(element, opt_button) {
143
- var result = goog.testing.events.fireMouseDownEvent(element, opt_button);
144
- if (result) {
145
- // Browsers move focus for all buttons, not just the left button.
146
- element.focus();
147
- }
148
- return result;
149
- }
150
-
151
-
152
- /**
153
- * @return {boolean} Whether we're on Mac Safari 3.x.
154
- */
155
- function isMacSafari3() {
156
- return goog.userAgent.WEBKIT && goog.userAgent.MAC &&
157
- !goog.userAgent.isVersion('527');
158
- }
159
-
160
- /**
161
- * Tests the {@link goog.ui.Control} constructor.
162
- */
163
- function testConstructor() {
164
- assertNotNull('Constructed control must not be null', control);
165
- assertEquals('Content must have expected value', 'Hello',
166
- control.getContent());
167
- assertEquals('Renderer must default to the registered renderer',
168
- goog.ui.registry.getDefaultRenderer(goog.ui.Control),
169
- control.getRenderer());
170
-
171
- var content = goog.dom.createDom('div', null, 'Hello',
172
- goog.dom.createDom('b', null, 'World'));
173
- var testRenderer = new TestRenderer();
174
- var fakeDomHelper = {};
175
- var foo = new goog.ui.Control(content, testRenderer, fakeDomHelper);
176
- assertNotNull('Constructed object must not be null', foo);
177
- assertEquals('Content must have expected value', content,
178
- foo.getContent());
179
- assertEquals('Renderer must have expected value', testRenderer,
180
- foo.getRenderer());
181
- assertEquals('DOM helper must have expected value', fakeDomHelper,
182
- foo.getDomHelper());
183
- foo.dispose();
184
- }
185
-
186
- /**
187
- * Tests {@link goog.ui.Control#getHandler}.
188
- */
189
- function testGetHandler() {
190
- assertUndefined('Event handler must be undefined before getHandler() ' +
191
- 'is called', control.googUiComponentHandler_);
192
- var handler = control.getHandler();
193
- assertNotNull('Event handler must not be null', handler);
194
- assertEquals('getHandler() must return the same instance if called again',
195
- handler, control.getHandler());
196
- }
197
-
198
- /**
199
- * Tests {@link goog.ui.Control#isHandleMouseEvents}.
200
- */
201
- function testIsHandleMouseEvents() {
202
- assertTrue('Controls must handle their own mouse events by default',
203
- control.isHandleMouseEvents());
204
- }
205
-
206
- /**
207
- * Tests {@link goog.ui.Control#setHandleMouseEvents}.
208
- */
209
- function testSetHandleMouseEvents() {
210
- assertTrue('Control must handle its own mouse events by default',
211
- control.isHandleMouseEvents());
212
- control.setHandleMouseEvents(false);
213
- assertFalse('Control must no longer handle its own mouse events',
214
- control.isHandleMouseEvents());
215
- control.setHandleMouseEvents(true);
216
- assertTrue('Control must once again handle its own mouse events',
217
- control.isHandleMouseEvents());
218
- control.render(sandbox);
219
- assertTrue('Rendered control must handle its own mouse events',
220
- control.isHandleMouseEvents());
221
- control.setHandleMouseEvents(false);
222
- assertFalse('Rendered control must no longer handle its own mouse events',
223
- control.isHandleMouseEvents());
224
- control.setHandleMouseEvents(true);
225
- assertTrue('Rendered control must once again handle its own mouse events',
226
- control.isHandleMouseEvents());
227
- }
228
-
229
- /**
230
- * Tests {@link goog.ui.Control#getKeyEventTarget}.
231
- */
232
- function testGetKeyEventTarget() {
233
- assertNull('Key event target of control without DOM must be null',
234
- control.getKeyEventTarget());
235
- control.createDom();
236
- assertEquals('Key event target of control with DOM must be its element',
237
- control.getElement(), control.getKeyEventTarget());
238
- }
239
-
240
- /**
241
- * Tests {@link goog.ui.Control#getKeyHandler}.
242
- */
243
- function testGetKeyHandler() {
244
- assertUndefined('Key handler must be undefined before getKeyHandler() ' +
245
- 'is called', control.keyHandler_);
246
- var keyHandler = control.getKeyHandler();
247
- assertNotNull('Key handler must not be null', keyHandler);
248
- assertEquals('getKeyHandler() must return the same instance if called ' +
249
- 'again', keyHandler, control.getKeyHandler());
250
- }
251
-
252
- /**
253
- * Tests {@link goog.ui.Control#getRenderer}.
254
- */
255
- function testGetRenderer() {
256
- assertEquals('Renderer must be the default registered renderer',
257
- goog.ui.registry.getDefaultRenderer(goog.ui.Control),
258
- control.getRenderer());
259
- }
260
-
261
- /**
262
- * Tests {@link goog.ui.Control#setRenderer}.
263
- */
264
- function testSetRenderer() {
265
- control.createDom();
266
- assertNotNull('Control must have a DOM', control.getElement());
267
- assertFalse('Control must not be in the document',
268
- control.isInDocument());
269
- assertEquals('Renderer must be the default registered renderer',
270
- goog.ui.registry.getDefaultRenderer(goog.ui.Control),
271
- control.getRenderer());
272
-
273
- var testRenderer = new TestRenderer();
274
- control.setRenderer(testRenderer);
275
- assertNull('Control must not have a DOM after its renderer is reset',
276
- control.getElement());
277
- assertFalse('Control still must not be in the document',
278
- control.isInDocument());
279
- assertEquals('Renderer must have expected value', testRenderer,
280
- control.getRenderer());
281
-
282
- control.render(sandbox);
283
- assertTrue('Control must be in the document', control.isInDocument());
284
-
285
- assertThrows('Resetting the renderer after the control has entered ' +
286
- 'the document must throw error',
287
- function() {
288
- control.setRenderer({});
289
- });
290
- }
291
-
292
- /**
293
- * Tests {@link goog.ui.Control#getExtraClassNames}.
294
- */
295
- function testGetExtraClassNames() {
296
- assertNull('Control must not have any extra class names by default',
297
- control.getExtraClassNames());
298
- }
299
-
300
- /**
301
- * Tests {@link goog.ui.Control#addExtraClassName} and
302
- * {@link goog.ui.Control#removeExtraClassName}.
303
- */
304
- function testAddRemoveClassName() {
305
- assertNull('Control must not have any extra class names by default',
306
- control.getExtraClassNames());
307
- control.addClassName('foo');
308
- assertArrayEquals('Control must have expected extra class names',
309
- ['foo'], control.getExtraClassNames());
310
- assertNull('Control must not have a DOM', control.getElement());
311
-
312
- control.createDom();
313
- assertSameElements('Control\'s element must have expected class names',
314
- ['goog-control', 'foo'],
315
- goog.dom.classes.get(control.getElement()));
316
-
317
- control.addClassName('bar');
318
- assertArrayEquals('Control must have expected extra class names',
319
- ['foo', 'bar'], control.getExtraClassNames());
320
- assertSameElements('Control\'s element must have expected class names',
321
- ['goog-control', 'foo', 'bar'],
322
- goog.dom.classes.get(control.getElement()));
323
-
324
- control.addClassName('bar');
325
- assertArrayEquals('Adding the same class name again must be a no-op',
326
- ['foo', 'bar'], control.getExtraClassNames());
327
- assertSameElements('Adding the same class name again must be a no-op',
328
- ['goog-control', 'foo', 'bar'],
329
- goog.dom.classes.get(control.getElement()));
330
-
331
- control.addClassName(null);
332
- assertArrayEquals('Adding null class name must be a no-op',
333
- ['foo', 'bar'], control.getExtraClassNames());
334
- assertSameElements('Adding null class name must be a no-op',
335
- ['goog-control', 'foo', 'bar'],
336
- goog.dom.classes.get(control.getElement()));
337
-
338
- control.removeClassName(null);
339
- assertArrayEquals('Removing null class name must be a no-op',
340
- ['foo', 'bar'], control.getExtraClassNames());
341
- assertSameElements('Removing null class name must be a no-op',
342
- ['goog-control', 'foo', 'bar'],
343
- goog.dom.classes.get(control.getElement()));
344
-
345
- control.removeClassName('foo');
346
- assertArrayEquals('Control must have expected extra class names',
347
- ['bar'], control.getExtraClassNames());
348
- assertSameElements('Control\'s element must have expected class names',
349
- ['goog-control', 'bar'],
350
- goog.dom.classes.get(control.getElement()));
351
-
352
- control.removeClassName('bar');
353
- assertNull('Control must not have any extra class names',
354
- control.getExtraClassNames());
355
- assertSameElements('Control\'s element must have expected class names',
356
- ['goog-control'],
357
- goog.dom.classes.get(control.getElement()));
358
- }
359
-
360
- /**
361
- * Tests {@link goog.ui.Control#enableClassName}.
362
- */
363
- function testEnableClassName() {
364
- assertNull('Control must not have any extra class names by default',
365
- control.getExtraClassNames());
366
-
367
- control.enableClassName('foo', true);
368
- assertArrayEquals('Control must have expected extra class names',
369
- ['foo'], control.getExtraClassNames());
370
-
371
- control.enableClassName('bar', true);
372
- assertArrayEquals('Control must have expected extra class names',
373
- ['foo', 'bar'], control.getExtraClassNames());
374
-
375
- control.enableClassName('bar', true);
376
- assertArrayEquals('Enabling the same class name again must be a no-op',
377
- ['foo', 'bar'], control.getExtraClassNames());
378
-
379
- control.enableClassName(null);
380
- assertArrayEquals('Enabling null class name must be a no-op',
381
- ['foo', 'bar'], control.getExtraClassNames());
382
-
383
- control.enableClassName('foo', false);
384
- assertArrayEquals('Control must have expected extra class names',
385
- ['bar'], control.getExtraClassNames());
386
-
387
- control.enableClassName('bar', false);
388
- assertNull('Control must not have any extra class names',
389
- control.getExtraClassNames());
390
- }
391
-
392
- /**
393
- * Tests {@link goog.ui.Control#createDom}.
394
- */
395
- function testCreateDom() {
396
- assertNull('Control must not have a DOM by default',
397
- control.getElement());
398
- assertFalse('Control must not allow text selection by default',
399
- control.isAllowTextSelection());
400
- assertTrue('Control must be visible by default', control.isVisible());
401
-
402
- control.createDom();
403
- assertNotNull('Control must have a DOM', control.getElement());
404
- assertTrue('Control\'s element must be unselectable',
405
- goog.style.isUnselectable(control.getElement()));
406
- assertTrue('Control\'s element must be visible',
407
- control.getElement().style.display != 'none');
408
-
409
- control.setAllowTextSelection(true);
410
- control.createDom();
411
- assertFalse('Control\'s element must be selectable',
412
- goog.style.isUnselectable(control.getElement()));
413
-
414
- control.setVisible(false);
415
- control.createDom();
416
- assertTrue('Control\'s element must be hidden',
417
- control.getElement().style.display == 'none');
418
- }
419
-
420
- /**
421
- * Tests {@link goog.ui.Control#getContentElement}.
422
- */
423
- function testGetContentElement() {
424
- assertNull('Unrendered control must not have a content element',
425
- control.getContentElement());
426
- control.createDom();
427
- assertEquals('Control\'s content element must equal its root element',
428
- control.getElement(), control.getContentElement());
429
- }
430
-
431
- /**
432
- * Tests {@link goog.ui.Control#canDecorate}.
433
- */
434
- function testCanDecorate() {
435
- assertTrue(control.canDecorate(goog.dom.createElement('div')));
436
- }
437
-
438
- /**
439
- * Tests {@link goog.ui.Control#decorateInternal}.
440
- */
441
- function testDecorateInternal() {
442
- sandbox.innerHTML = '<div id="foo">Hello, <b>World</b>!</div>';
443
- var foo = goog.dom.getElement('foo');
444
- control.decorate(foo);
445
- assertEquals('Decorated control\'s element must have expected value',
446
- foo, control.getElement());
447
- assertTrue('Element must be unselectable',
448
- goog.style.isUnselectable(control.getElement()));
449
- assertTrue('Element must be visible',
450
- control.getElement().style.display != 'none');
451
- }
452
-
453
- /**
454
- * Tests {@link goog.ui.Control#decorateInternal} with a control that
455
- * allows text selection.
456
- */
457
- function testDecorateInternalForSelectableControl() {
458
- sandbox.innerHTML = '<div id="foo">Hello, <b>World</b>!</div>';
459
- var foo = goog.dom.getElement('foo');
460
- control.setAllowTextSelection(true);
461
- control.decorate(foo);
462
- assertEquals('Decorated control\'s element must have expected value',
463
- foo, control.getElement());
464
- assertFalse('Element must be selectable',
465
- goog.style.isUnselectable(control.getElement()));
466
- assertTrue('Control must be visible', control.isVisible());
467
- }
468
-
469
- /**
470
- * Tests {@link goog.ui.Control#decorateInternal} with a hidden element.
471
- */
472
- function testDecorateInternalForHiddenElement() {
473
- sandbox.innerHTML = '<div id="foo" style="display:none">Hello!</div>';
474
- var foo = goog.dom.getElement('foo');
475
- control.decorate(foo);
476
- assertEquals('Decorated control\'s element must have expected value',
477
- foo, control.getElement());
478
- assertTrue('Element must be unselectable',
479
- goog.style.isUnselectable(control.getElement()));
480
- assertFalse('Control must be hidden', control.isVisible());
481
- }
482
-
483
- /**
484
- * Tests {@link goog.ui.Control#enterDocument}.
485
- */
486
- function testEnterDocument() {
487
- control.render(sandbox);
488
- assertTrue('Control must be in the document', control.isInDocument());
489
- if (goog.userAgent.IE) {
490
- assertEquals('Control must have 5 mouse & 3 key event listeners on IE',
491
- 8, getListenerCount(control));
492
- } else {
493
- assertEquals('Control must have 4 mouse and 3 key event listeners', 7,
494
- getListenerCount(control));
495
- }
496
- assertEquals('Control\'s key event handler must be attached to its ' +
497
- 'key event target', control.getKeyEventTarget(),
498
- control.getKeyHandler().element_);
499
- }
500
-
501
- /**
502
- * Tests {@link goog.ui.Control#enterDocument} for a control that doesn't
503
- * handle mouse events.
504
- */
505
- function testEnterDocumentForControlWithoutMouseHandling() {
506
- control.setHandleMouseEvents(false);
507
- control.render(sandbox);
508
- assertTrue('Control must be in the document', control.isInDocument());
509
- assertEquals('Control must have 3 key event listeners', 3,
510
- getListenerCount(control));
511
- assertEquals('Control\'s key event handler must be attached to its ' +
512
- 'key event target', control.getKeyEventTarget(),
513
- control.getKeyHandler().element_);
514
- }
515
-
516
- /**
517
- * Tests {@link goog.ui.Control#enterDocument} for a control that isn't
518
- * focusable.
519
- */
520
- function testEnterDocumentForNonFocusableControl() {
521
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
522
- control.render(sandbox);
523
- assertTrue('Control must be in the document', control.isInDocument());
524
- if (goog.userAgent.IE) {
525
- assertEquals('Control must have 5 mouse event listeners on IE', 5,
526
- getListenerCount(control));
527
- } else {
528
- assertEquals('Control must have 4 mouse event listeners', 4,
529
- getListenerCount(control));
530
- }
531
- assertUndefined('Control must not have a key event handler',
532
- control.keyHandler_);
533
- }
534
-
535
- /**
536
- * Tests {@link goog.ui.Control#enterDocument} for a control that doesn't
537
- * need to do any event handling.
538
- */
539
- function testEnterDocumentForControlWithoutEventHandlers() {
540
- control.setHandleMouseEvents(false);
541
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
542
- control.render(sandbox);
543
- assertTrue('Control must be in the document', control.isInDocument());
544
- assertEquals('Control must have 0 event listeners', 0,
545
- getListenerCount(control));
546
- assertUndefined('Control must not have an event handler',
547
- control.googUiComponentHandler_);
548
- assertUndefined('Control must not have a key event handler',
549
- control.keyHandler_);
550
- }
551
-
552
- /**
553
- * Tests {@link goog.ui.Control#exitDocument}.
554
- */
555
- function testExitDocument() {
556
- control.render(sandbox);
557
- assertTrue('Control must be in the document', control.isInDocument());
558
- if (goog.userAgent.IE) {
559
- assertEquals('Control must have 5 mouse & 3 key event listeners on IE',
560
- 8, getListenerCount(control));
561
- } else {
562
- assertEquals('Control must have 4 mouse and 3 key event listeners', 7,
563
- getListenerCount(control));
564
- }
565
- assertEquals('Control\'s key event handler must be attached to its ' +
566
- 'key event target', control.getKeyEventTarget(),
567
- control.getKeyHandler().element_);
568
- // Expected to fail on Mac Safari prior to version 527.
569
- expectedFailures.expectFailureFor(isMacSafari3());
570
- try {
571
- assertTrue('Control\'s element must support keyboard focus',
572
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
573
- } catch (e) {
574
- expectedFailures.handleException(e);
575
- }
576
-
577
- control.exitDocument();
578
- assertFalse('Control must no longer be in the document',
579
- control.isInDocument());
580
- assertEquals('Control must have no event listeners', 0,
581
- getListenerCount(control));
582
- assertNull('Control\'s key event handler must be unattached',
583
- control.getKeyHandler().element_);
584
- assertFalse('Control\'s element must no longer support keyboard focus',
585
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
586
- }
587
-
588
- /**
589
- * Tests {@link goog.ui.Control#dispose}.
590
- */
591
- function testDispose() {
592
- control.render(sandbox);
593
- var handler = control.getHandler();
594
- var keyHandler = control.getKeyHandler();
595
- control.dispose();
596
- assertFalse('Control must no longer be in the document',
597
- control.isInDocument());
598
- assertTrue('Control must have been disposed of', control.isDisposed());
599
- assertUndefined('Renderer must have been deleted', control.getRenderer());
600
- assertNull('Content must be nulled out', control.getContent());
601
- assertTrue('Event handler must have been disposed of',
602
- handler.isDisposed());
603
- assertUndefined('Event handler must have been deleted',
604
- control.googUiComponentHandler_);
605
- assertTrue('Key handler must have been disposed of',
606
- keyHandler.isDisposed());
607
- assertUndefined('Key handler must have been deleted', control.keyHandler_);
608
- assertNull('Extra class names must have been nulled out',
609
- control.getExtraClassNames());
610
- }
611
-
612
- /**
613
- * Tests {@link goog.ui.Control#getContent}.
614
- */
615
- function testGetContent() {
616
- assertNull('Empty control must have null content',
617
- (new goog.ui.Control(null)).getContent());
618
- assertEquals('Control must have expected content', 'Hello',
619
- control.getContent());
620
- control.render(sandbox);
621
- assertEquals('Control must have expected content after rendering',
622
- 'Hello', control.getContent());
623
- }
624
-
625
-
626
- /**
627
- * Tests {@link goog.ui.Control#getContent}.
628
- */
629
- function testGetContentForDecoratedControl() {
630
- sandbox.innerHTML =
631
- '<div id="empty"></div>\n' +
632
- '<div id="text">Hello, world!</div>\n' +
633
- '<div id="element"><span>Foo</span></div>\n' +
634
- '<div id="nodelist">Hello, <b>world</b>!</div>\n';
635
-
636
- var empty = new goog.ui.Control(null);
637
- empty.decorate(goog.dom.getElement('empty'));
638
- assertNull('Content of control decorating empty DIV must be null',
639
- empty.getContent());
640
- empty.dispose();
641
-
642
- var text = new goog.ui.Control(null);
643
- text.decorate(goog.dom.getElement('text'));
644
- assertEquals('Content of control decorating DIV with text contents ' +
645
- 'must be as expected', 'Hello, world!', text.getContent().nodeValue);
646
- text.dispose();
647
-
648
- var element = new goog.ui.Control(null);
649
- element.decorate(goog.dom.getElement('element'));
650
- assertEquals('Content of control decorating DIV with element child ' +
651
- 'must be as expected', goog.dom.getElement('element').firstChild,
652
- element.getContent());
653
- element.dispose();
654
-
655
- var nodelist = new goog.ui.Control(null);
656
- nodelist.decorate(goog.dom.getElement('nodelist'));
657
- assertSameElements('Content of control decorating DIV with mixed ' +
658
- 'contents must be as expected',
659
- goog.dom.getElement('nodelist').childNodes, nodelist.getContent());
660
- nodelist.dispose();
661
- }
662
-
663
- /**
664
- * Tests {@link goog.ui.Control#setContent}.
665
- */
666
- function testSetContent() {
667
- control.setContent('Bye');
668
- assertEquals('Unrendered control control must have expected contents',
669
- 'Bye', control.getContent());
670
- assertNull('No DOM must be created by setContent', control.getElement());
671
-
672
- control.createDom();
673
- assertEquals('Rendered control\'s DOM must have expected contents',
674
- 'Bye', control.getElement().innerHTML);
675
-
676
- control.setContent(null);
677
- assertNull('Rendered control must have expected contents',
678
- control.getContent());
679
- assertEquals('Rendered control\'s DOM must have expected contents',
680
- '', control.getElement().innerHTML);
681
-
682
- control.setContent([goog.dom.createDom('div', null,
683
- goog.dom.createDom('span', null, 'Hello')), 'World']);
684
- assertHTMLEquals('Control\'s DOM must be updated',
685
- '<div><span>Hello</span></div>World', control.getElement().innerHTML);
686
- }
687
-
688
- /**
689
- * Tests {@link goog.ui.Control#setContentInternal}.
690
- */
691
- function testSetContentInternal() {
692
- control.render(sandbox);
693
- assertEquals('Control must have expected content after rendering',
694
- 'Hello', control.getContent());
695
- control.setContentInternal('Bye');
696
- assertEquals('Control must have expected contents',
697
- 'Bye', control.getContent());
698
- assertEquals('Control\'s DOM must be unchanged', 'Hello',
699
- control.getElement().innerHTML);
700
- }
701
-
702
- /**
703
- * Tests {@link goog.ui.Control#getCaption}.
704
- */
705
- function testGetCaption() {
706
- assertNull('Empty control\'s caption must be null',
707
- (new goog.ui.Control(null)).getCaption());
708
-
709
- assertEquals('Caption must have expected value', 'Hello',
710
- control.getCaption());
711
-
712
- sandbox.innerHTML = '<div id="nodelist">Hello, <b>world</b>!</div>';
713
- control.decorate(goog.dom.getElement('nodelist'));
714
- assertEquals('Caption must have expected value', 'Hello, world!',
715
- control.getCaption());
716
- }
717
-
718
- /**
719
- * Tests {@link goog.ui.Control#setCaption}.
720
- */
721
- function testSetCaption() {
722
- control.setCaption('Hello, world!');
723
- assertEquals('Control must have a string caption "Hello, world!"',
724
- 'Hello, world!', control.getCaption());
725
- }
726
-
727
- /**
728
- * Tests {@link goog.ui.Control#setRightToLeft}.
729
- */
730
- function testSetRightToLeft() {
731
- control.createDom();
732
- assertFalse('Control\'s element must not have right-to-left class',
733
- goog.dom.classes.has(control.getElement(), 'goog-control-rtl'));
734
- control.setRightToLeft(true);
735
- assertTrue('Control\'s element must have right-to-left class',
736
- goog.dom.classes.has(control.getElement(), 'goog-control-rtl'));
737
- control.render(sandbox);
738
- assertThrows('Changing the render direction of a control already in ' +
739
- 'the document is an error',
740
- function() {
741
- control.setRightToLeft(false);
742
- });
743
- }
744
-
745
- /**
746
- * Tests {@link goog.ui.Control#isAllowTextSelection}.
747
- */
748
- function testIsAllowTextSelection() {
749
- assertFalse('Controls must not allow text selection by default',
750
- control.isAllowTextSelection());
751
- }
752
-
753
- /**
754
- * Tests {@link goog.ui.Control#setAllowTextSelection}.
755
- */
756
- function testSetAllowTextSelection() {
757
- assertFalse('Controls must not allow text selection by default',
758
- control.isAllowTextSelection());
759
-
760
- control.setAllowTextSelection(true);
761
- assertTrue('Control must allow text selection',
762
- control.isAllowTextSelection());
763
-
764
- control.setAllowTextSelection(false);
765
- assertFalse('Control must no longer allow text selection',
766
- control.isAllowTextSelection());
767
-
768
- control.render(sandbox);
769
-
770
- assertFalse('Control must not allow text selection even after rendered',
771
- control.isAllowTextSelection());
772
-
773
- control.setAllowTextSelection(true);
774
- assertTrue('Control must once again allow text selection',
775
- control.isAllowTextSelection());
776
- }
777
-
778
- /**
779
- * Tests {@link goog.ui.Control#isVisible}.
780
- */
781
- function testIsVisible() {
782
- assertTrue('Controls must be visible by default', control.isVisible());
783
- }
784
-
785
- /**
786
- * Tests {@link goog.ui.Control#setVisible} before it is rendered.
787
- */
788
- function testSetVisible() {
789
- assertFalse('setVisible(true) must return false if already visible',
790
- control.setVisible(true));
791
- assertTrue('No events must have been dispatched', noEventsDispatched());
792
-
793
- assertTrue('setVisible(false) must return true if previously visible',
794
- control.setVisible(false));
795
- assertEquals('One HIDE event must have been dispatched',
796
- 1, getEventCount(control, goog.ui.Component.EventType.HIDE));
797
- assertFalse('Control must no longer be visible', control.isVisible());
798
-
799
- assertTrue('setVisible(true) must return true if previously hidden',
800
- control.setVisible(true));
801
- assertEquals('One SHOW event must have been dispatched',
802
- 1, getEventCount(control, goog.ui.Component.EventType.SHOW));
803
- assertTrue('Control must be visible', control.isVisible());
804
- }
805
-
806
- /**
807
- * Tests {@link goog.ui.Control#setVisible} after it is rendered.
808
- */
809
- function testSetVisibleForRenderedControl() {
810
- control.render(sandbox);
811
- assertTrue('No events must have been dispatched during rendering',
812
- noEventsDispatched());
813
-
814
- assertFalse('setVisible(true) must return false if already visible',
815
- control.setVisible(true));
816
- assertTrue('No events must have been dispatched', noEventsDispatched());
817
- assertTrue('Control\'s element must be visible',
818
- control.getElement().style.display != 'none');
819
-
820
- assertTrue('setVisible(false) must return true if previously visible',
821
- control.setVisible(false));
822
- assertEquals('One HIDE event must have been dispatched',
823
- 1, getEventCount(control, goog.ui.Component.EventType.HIDE));
824
- assertFalse('Control must no longer be visible', control.isVisible());
825
- assertTrue('Control\'s element must be hidden',
826
- control.getElement().style.display == 'none');
827
-
828
- assertTrue('setVisible(true) must return true if previously hidden',
829
- control.setVisible(true));
830
- assertEquals('One SHOW event must have been dispatched',
831
- 1, getEventCount(control, goog.ui.Component.EventType.SHOW));
832
- assertTrue('Control must be visible', control.isVisible());
833
- assertTrue('Control\'s element must be visible',
834
- control.getElement().style.display != 'none');
835
- }
836
-
837
- /**
838
- * Tests {@link goog.ui.Control#setVisible} for disabled non-focusable
839
- * controls.
840
- */
841
- function testSetVisibleForDisabledNonFocusableControl() {
842
- // Hidden, disabled, non-focusable control becoming visible.
843
- control.setEnabled(false);
844
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
845
- control.render(sandbox);
846
- assertTrue('Control must be visible', control.isVisible());
847
- assertFalse('Control must not have a tab index',
848
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
849
-
850
- // Visible, disabled, non-focusable control becoming hidden.
851
- control.getKeyEventTarget().focus();
852
- assertEquals('Control must not have dispatched FOCUS', 0,
853
- getEventCount(control, goog.ui.Component.EventType.FOCUS));
854
- assertFalse('Control must not have keyboard focus', control.isFocused());
855
- control.setVisible(false);
856
- assertFalse('Control must be hidden', control.isVisible());
857
- assertFalse('Control must not have a tab index',
858
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
859
- assertEquals('Control must have dispatched HIDE', 1,
860
- getEventCount(control, goog.ui.Component.EventType.HIDE));
861
- assertEquals('Control must not have dispatched BLUR', 0,
862
- getEventCount(control, goog.ui.Component.EventType.BLUR));
863
- }
864
-
865
- /**
866
- * Tests {@link goog.ui.Control#setVisible} for disabled focusable controls.
867
- */
868
- function testSetVisibleForDisabledFocusableControl() {
869
- // Hidden, disabled, focusable control becoming visible.
870
- control.setEnabled(false);
871
- control.setSupportedState(goog.ui.Component.State.FOCUSED, true);
872
- control.render(sandbox);
873
- assertTrue('Control must be visible', control.isVisible());
874
- assertFalse('Control must not have a tab index',
875
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
876
-
877
- // Visible, disabled, focusable control becoming hidden.
878
- control.getKeyEventTarget().focus();
879
- assertEquals('Control must not have dispatched FOCUS', 0,
880
- getEventCount(control, goog.ui.Component.EventType.FOCUS));
881
- assertFalse('Control must not have keyboard focus', control.isFocused());
882
- control.setVisible(false);
883
- assertFalse('Control must be hidden', control.isVisible());
884
- assertFalse('Control must not have a tab index',
885
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
886
- assertEquals('Control must have dispatched HIDE', 1,
887
- getEventCount(control, goog.ui.Component.EventType.HIDE));
888
- assertEquals('Control must not have dispatched BLUR', 0,
889
- getEventCount(control, goog.ui.Component.EventType.BLUR));
890
- }
891
-
892
- /**
893
- * Tests {@link goog.ui.Control#setVisible} for enabled non-focusable
894
- * controls.
895
- */
896
- function testSetVisibleForEnabledNonFocusableControl() {
897
- // Hidden, enabled, non-focusable control becoming visible.
898
- control.setEnabled(true);
899
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
900
- control.render(sandbox);
901
- assertTrue('Control must be visible', control.isVisible());
902
- assertFalse('Control must not have a tab index',
903
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
904
-
905
- if (testFocus) {
906
- // Visible, enabled, non-focusable control becoming hidden.
907
- control.getKeyEventTarget().focus();
908
- assertEquals('Control must not have dispatched FOCUS', 0,
909
- getEventCount(control, goog.ui.Component.EventType.FOCUS));
910
- assertFalse('Control must not have keyboard focus', control.isFocused());
911
- control.setVisible(false);
912
- assertFalse('Control must be hidden', control.isVisible());
913
- assertFalse('Control must not have a tab index',
914
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
915
- assertEquals('Control must have dispatched HIDE', 1,
916
- getEventCount(control, goog.ui.Component.EventType.HIDE));
917
- assertEquals('Control must not have dispatched BLUR', 0,
918
- getEventCount(control, goog.ui.Component.EventType.BLUR));
919
- }
920
- }
921
-
922
- /**
923
- * Tests {@link goog.ui.Control#setVisible} for enabled focusable controls.
924
- */
925
- function testSetVisibleForEnabledFocusableControl() {
926
- // Hidden, enabled, focusable control becoming visible.
927
- control.setEnabled(true);
928
- control.setSupportedState(goog.ui.Component.State.FOCUSED, true);
929
- control.render(sandbox);
930
- assertTrue('Control must be visible', control.isVisible());
931
-
932
- if (testFocus) {
933
- // Expected to fail on Mac Safari prior to version 527.
934
- expectedFailures.expectFailureFor(isMacSafari3());
935
- try {
936
- // Mac Safari currently doesn't support tabIndex on arbitrary elements.
937
- assertTrue('Control must have a tab index',
938
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
939
- } catch (e) {
940
- expectedFailures.handleException(e);
941
- }
942
-
943
- // Visible, enabled, focusable control becoming hidden.
944
- control.getKeyEventTarget().focus();
945
-
946
- // Expected to fail on IE.
947
- expectedFailures.expectFailureFor(goog.userAgent.IE);
948
- try {
949
- // IE dispatches focus and blur events asynchronously!
950
- assertEquals('Control must have dispatched FOCUS', 1,
951
- getEventCount(control, goog.ui.Component.EventType.FOCUS));
952
- assertTrue('Control must have keyboard focus', control.isFocused());
953
- } catch (e) {
954
- expectedFailures.handleException(e);
955
- }
956
-
957
- control.setVisible(false);
958
- assertFalse('Control must be hidden', control.isVisible());
959
- assertFalse('Control must not have a tab index',
960
- goog.dom.isFocusableTabIndex(control.getKeyEventTarget()));
961
- assertEquals('Control must have dispatched HIDE', 1,
962
- getEventCount(control, goog.ui.Component.EventType.HIDE));
963
-
964
- // Expected to fail on IE.
965
- expectedFailures.expectFailureFor(goog.userAgent.IE);
966
- try {
967
- // IE dispatches focus and blur events asynchronously!
968
- assertEquals('Control must have dispatched BLUR', 1,
969
- getEventCount(control, goog.ui.Component.EventType.BLUR));
970
- assertFalse('Control must no longer have keyboard focus',
971
- control.isFocused());
972
- } catch (e) {
973
- expectedFailures.handleException(e);
974
- }
975
- }
976
- }
977
-
978
- /**
979
- * Tests {@link goog.ui.Control#isEnabled}.
980
- */
981
- function testIsEnabled() {
982
- assertTrue('Controls must be enabled by default', control.isEnabled());
983
- }
984
-
985
- /**
986
- * Tests {@link goog.ui.Control#setEnabled}.
987
- */
988
- function testSetEnabled() {
989
- control.render(sandbox);
990
- control.setHighlighted(true);
991
- control.setActive(true);
992
- control.getKeyEventTarget().focus();
993
-
994
- resetEventCount();
995
-
996
- control.setEnabled(true);
997
- assertTrue('No events must have been dispatched', noEventsDispatched());
998
- assertTrue('Control must be enabled', control.isEnabled());
999
- assertTrue('Control must be highlighted', control.isHighlighted());
1000
- assertTrue('Control must be active', control.isActive());
1001
-
1002
- if (testFocus) {
1003
- // Expected to fail on IE and Mac Safari 3. IE calls focus handlers
1004
- // asynchronously, and Mac Safari 3 doesn't support keyboard focus.
1005
- expectedFailures.expectFailureFor(goog.userAgent.IE);
1006
- expectedFailures.expectFailureFor(isMacSafari3());
1007
- try {
1008
- assertTrue('Control must be focused', control.isFocused());
1009
- } catch (e) {
1010
- expectedFailures.handleException(e);
1011
- }
1012
- }
1013
-
1014
- resetEventCount();
1015
-
1016
- control.setEnabled(false);
1017
- assertEquals('One DISABLE event must have been dispatched', 1,
1018
- getEventCount(control, goog.ui.Component.EventType.DISABLE));
1019
- assertFalse('Control must be disabled', control.isEnabled());
1020
- assertFalse('Control must not be highlighed', control.isHighlighted());
1021
- assertFalse('Control must not be active', control.isActive());
1022
- assertFalse('Control must not be focused', control.isFocused());
1023
- }
1024
-
1025
- /**
1026
- * Tests {@link goog.ui.Control#setEnabled} when the control has a parent.
1027
- */
1028
- function testSetEnabledWithParent() {
1029
- var child = new goog.ui.Control(null);
1030
- child.setDispatchTransitionEvents(goog.ui.Component.State.ALL, true);
1031
- control.addChild(child, true /* opt_render */);
1032
- control.setEnabled(false);
1033
-
1034
- resetEventCount();
1035
-
1036
- assertFalse('Parent must be disabled', control.isEnabled());
1037
- assertTrue('Child must be enabled', child.isEnabled());
1038
-
1039
- child.setEnabled(false);
1040
- assertTrue('No events must have been dispatched when child is disabled',
1041
- noEventsDispatched());
1042
- assertTrue('Child must still be enabled', child.isEnabled());
1043
-
1044
- resetEventCount();
1045
-
1046
- control.setEnabled(true);
1047
- assertEquals('One ENABLE event must have been dispatched by the parent',
1048
- 1, getEventCount(control, goog.ui.Component.EventType.ENABLE));
1049
- assertTrue('Parent must be enabled', control.isEnabled());
1050
- assertTrue('Child must still be enabled', child.isEnabled());
1051
-
1052
- resetEventCount();
1053
-
1054
- child.setEnabled(false);
1055
- assertEquals('One DISABLE event must have been dispatched by the child',
1056
- 1, getEventCount(child, goog.ui.Component.EventType.DISABLE));
1057
- assertTrue('Parent must still be enabled', control.isEnabled());
1058
- assertFalse('Child must now be disabled', child.isEnabled());
1059
-
1060
- resetEventCount();
1061
-
1062
- control.setEnabled(false);
1063
- assertEquals('One DISABLE event must have been dispatched by the parent',
1064
- 1, getEventCount(control, goog.ui.Component.EventType.DISABLE));
1065
- assertFalse('Parent must now be disabled', control.isEnabled());
1066
- assertFalse('Child must still be disabled', child.isEnabled());
1067
-
1068
- child.dispose();
1069
- }
1070
-
1071
- /**
1072
- * Tests {@link goog.ui.Control#isHighlighted}.
1073
- */
1074
- function testIsHighlighted() {
1075
- assertFalse('Controls must not be highlighted by default',
1076
- control.isHighlighted());
1077
- }
1078
-
1079
- /**
1080
- * Tests {@link goog.ui.Control#setHighlighted}.
1081
- */
1082
- function testSetHighlighted() {
1083
- control.setSupportedState(goog.ui.Component.State.HOVER, false);
1084
-
1085
- control.setHighlighted(true);
1086
- assertFalse('Control must not be highlighted, because it isn\'t ' +
1087
- 'highlightable', control.isHighlighted());
1088
- assertTrue('Control must not have dispatched any events',
1089
- noEventsDispatched());
1090
-
1091
- control.setSupportedState(goog.ui.Component.State.HOVER, true);
1092
-
1093
- control.setHighlighted(true);
1094
- assertTrue('Control must be highlighted', control.isHighlighted());
1095
- assertEquals('Control must have dispatched a HIGHLIGHT event', 1,
1096
- getEventCount(control, goog.ui.Component.EventType.HIGHLIGHT));
1097
-
1098
- control.setHighlighted(true);
1099
- assertTrue('Control must still be highlighted', control.isHighlighted());
1100
- assertEquals('Control must not dispatch more HIGHLIGHT events', 1,
1101
- getEventCount(control, goog.ui.Component.EventType.HIGHLIGHT));
1102
-
1103
- control.setHighlighted(false);
1104
- assertFalse('Control must not be highlighted', control.isHighlighted());
1105
- assertEquals('Control must have dispatched an UNHIGHLIGHT event', 1,
1106
- getEventCount(control, goog.ui.Component.EventType.UNHIGHLIGHT));
1107
- control.setEnabled(false);
1108
- assertFalse('Control must be disabled', control.isEnabled());
1109
-
1110
- control.setHighlighted(true);
1111
- assertTrue('Control must be highlighted, even when disabled',
1112
- control.isHighlighted());
1113
- assertEquals('Control must have dispatched another HIGHLIGHT event', 2,
1114
- getEventCount(control, goog.ui.Component.EventType.HIGHLIGHT));
1115
- }
1116
-
1117
- /**
1118
- * Tests {@link goog.ui.Control#isActive}.
1119
- */
1120
- function testIsActive() {
1121
- assertFalse('Controls must not be active by default', control.isActive());
1122
- }
1123
-
1124
- /**
1125
- * Tests {@link goog.ui.Control#setActive}.
1126
- */
1127
- function testSetActive() {
1128
- control.setSupportedState(goog.ui.Component.State.ACTIVE, false);
1129
-
1130
- control.setActive(true);
1131
- assertFalse('Control must not be active, because it isn\'t activateable',
1132
- control.isActive());
1133
- assertTrue('Control must not have dispatched any events',
1134
- noEventsDispatched());
1135
-
1136
- control.setSupportedState(goog.ui.Component.State.ACTIVE, true);
1137
-
1138
- control.setActive(true);
1139
- assertTrue('Control must be active', control.isActive());
1140
- assertEquals('Control must have dispatched an ACTIVATE event', 1,
1141
- getEventCount(control, goog.ui.Component.EventType.ACTIVATE));
1142
-
1143
- control.setActive(true);
1144
- assertTrue('Control must still be active', control.isActive());
1145
- assertEquals('Control must not dispatch more ACTIVATE events', 1,
1146
- getEventCount(control, goog.ui.Component.EventType.ACTIVATE));
1147
-
1148
- control.setEnabled(false);
1149
- assertFalse('Control must be disabled', control.isEnabled());
1150
- assertFalse('Control must not be active', control.isActive());
1151
- assertEquals('Control must have dispatched a DEACTIVATE event', 1,
1152
- getEventCount(control, goog.ui.Component.EventType.DEACTIVATE));
1153
- }
1154
-
1155
- /**
1156
- * Tests disposing the control from an action event handler.
1157
- */
1158
- function testDisposeOnAction() {
1159
- goog.events.listen(control, goog.ui.Component.EventType.ACTION,
1160
- function(e) {
1161
- control.dispose();
1162
- });
1163
-
1164
- // Control must not throw an exception if disposed of in an ACTION event
1165
- // handler.
1166
- control.performActionInternal();
1167
- control.setActive(true);
1168
- assertTrue('Control should have been disposed of', control.isDisposed());
1169
- }
1170
-
1171
- /**
1172
- * Tests {@link goog.ui.Control#isSelected}.
1173
- */
1174
- function testIsSelected() {
1175
- assertFalse('Controls must not be selected by default',
1176
- control.isSelected());
1177
- }
1178
-
1179
- /**
1180
- * Tests {@link goog.ui.Control#setSelected}.
1181
- */
1182
- function testSetSelected() {
1183
- control.setSupportedState(goog.ui.Component.State.SELECTED, false);
1184
-
1185
- control.setSelected(true);
1186
- assertFalse('Control must not be selected, because it isn\'t selectable',
1187
- control.isSelected());
1188
- assertTrue('Control must not have dispatched any events',
1189
- noEventsDispatched());
1190
-
1191
- control.setSupportedState(goog.ui.Component.State.SELECTED, true);
1192
-
1193
- control.setSelected(true);
1194
- assertTrue('Control must be selected', control.isSelected());
1195
- assertEquals('Control must have dispatched a SELECT event', 1,
1196
- getEventCount(control, goog.ui.Component.EventType.SELECT));
1197
-
1198
- control.setSelected(true);
1199
- assertTrue('Control must still be selected', control.isSelected());
1200
- assertEquals('Control must not dispatch more SELECT events', 1,
1201
- getEventCount(control, goog.ui.Component.EventType.SELECT));
1202
-
1203
- control.setSelected(false);
1204
- assertFalse('Control must not be selected', control.isSelected());
1205
- assertEquals('Control must have dispatched an UNSELECT event', 1,
1206
- getEventCount(control, goog.ui.Component.EventType.UNSELECT));
1207
- control.setEnabled(false);
1208
- assertFalse('Control must be disabled', control.isEnabled());
1209
-
1210
- control.setSelected(true);
1211
- assertTrue('Control must be selected, even when disabled',
1212
- control.isSelected());
1213
- assertEquals('Control must have dispatched another SELECT event', 2,
1214
- getEventCount(control, goog.ui.Component.EventType.SELECT));
1215
- }
1216
-
1217
- /**
1218
- * Tests {@link goog.ui.Control#isChecked}.
1219
- */
1220
- function testIsChecked() {
1221
- assertFalse('Controls must not be checked by default',
1222
- control.isChecked());
1223
- }
1224
-
1225
- /**
1226
- * Tests {@link goog.ui.Control#setChecked}.
1227
- */
1228
- function testSetChecked() {
1229
- control.setSupportedState(goog.ui.Component.State.CHECKED, false);
1230
-
1231
- control.setChecked(true);
1232
- assertFalse('Control must not be checked, because it isn\'t checkable',
1233
- control.isChecked());
1234
- assertTrue('Control must not have dispatched any events',
1235
- noEventsDispatched());
1236
-
1237
- control.setSupportedState(goog.ui.Component.State.CHECKED, true);
1238
-
1239
- control.setChecked(true);
1240
- assertTrue('Control must be checked', control.isChecked());
1241
- assertEquals('Control must have dispatched a CHECK event', 1,
1242
- getEventCount(control, goog.ui.Component.EventType.CHECK));
1243
-
1244
- control.setChecked(true);
1245
- assertTrue('Control must still be checked', control.isChecked());
1246
- assertEquals('Control must not dispatch more CHECK events', 1,
1247
- getEventCount(control, goog.ui.Component.EventType.CHECK));
1248
-
1249
- control.setChecked(false);
1250
- assertFalse('Control must not be checked', control.isChecked());
1251
- assertEquals('Control must have dispatched an UNCHECK event', 1,
1252
- getEventCount(control, goog.ui.Component.EventType.UNCHECK));
1253
- control.setEnabled(false);
1254
- assertFalse('Control must be disabled', control.isEnabled());
1255
-
1256
- control.setChecked(true);
1257
- assertTrue('Control must be checked, even when disabled',
1258
- control.isChecked());
1259
- assertEquals('Control must have dispatched another CHECK event', 2,
1260
- getEventCount(control, goog.ui.Component.EventType.CHECK));
1261
- }
1262
-
1263
- /**
1264
- * Tests {@link goog.ui.Control#isFocused}.
1265
- */
1266
- function testIsFocused() {
1267
- assertFalse('Controls must not be focused by default',
1268
- control.isFocused());
1269
- }
1270
-
1271
- /**
1272
- * Tests {@link goog.ui.Control#setFocused}.
1273
- */
1274
- function testSetFocused() {
1275
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
1276
-
1277
- control.setFocused(true);
1278
- assertFalse('Control must not be focused, because it isn\'t focusable',
1279
- control.isFocused());
1280
- assertTrue('Control must not have dispatched any events',
1281
- noEventsDispatched());
1282
-
1283
- control.setSupportedState(goog.ui.Component.State.FOCUSED, true);
1284
-
1285
- control.setFocused(true);
1286
- assertTrue('Control must be focused', control.isFocused());
1287
- assertEquals('Control must have dispatched a FOCUS event', 1,
1288
- getEventCount(control, goog.ui.Component.EventType.FOCUS));
1289
-
1290
- control.setFocused(true);
1291
- assertTrue('Control must still be focused', control.isFocused());
1292
- assertEquals('Control must not dispatch more FOCUS events', 1,
1293
- getEventCount(control, goog.ui.Component.EventType.FOCUS));
1294
-
1295
- control.setFocused(false);
1296
- assertFalse('Control must not be focused', control.isFocused());
1297
- assertEquals('Control must have dispatched an BLUR event', 1,
1298
- getEventCount(control, goog.ui.Component.EventType.BLUR));
1299
- control.setEnabled(false);
1300
- assertFalse('Control must be disabled', control.isEnabled());
1301
-
1302
- control.setFocused(true);
1303
- assertTrue('Control must be focused, even when disabled',
1304
- control.isFocused());
1305
- assertEquals('Control must have dispatched another FOCUS event', 2,
1306
- getEventCount(control, goog.ui.Component.EventType.FOCUS));
1307
- }
1308
-
1309
- /**
1310
- * Tests {@link goog.ui.Control#isOpen}.
1311
- */
1312
- function testIsOpen() {
1313
- assertFalse('Controls must not be open by default', control.isOpen());
1314
- }
1315
-
1316
- /**
1317
- * Tests {@link goog.ui.Control#setOpen}.
1318
- */
1319
- function testSetOpen() {
1320
- control.setSupportedState(goog.ui.Component.State.OPENED, false);
1321
-
1322
- control.setOpen(true);
1323
- assertFalse('Control must not be opened, because it isn\'t openable',
1324
- control.isOpen());
1325
- assertTrue('Control must not have dispatched any events',
1326
- noEventsDispatched());
1327
-
1328
- control.setSupportedState(goog.ui.Component.State.OPENED, true);
1329
-
1330
- control.setOpen(true);
1331
- assertTrue('Control must be opened', control.isOpen());
1332
- assertEquals('Control must have dispatched a OPEN event', 1,
1333
- getEventCount(control, goog.ui.Component.EventType.OPEN));
1334
-
1335
- control.setOpen(true);
1336
- assertTrue('Control must still be opened', control.isOpen());
1337
- assertEquals('Control must not dispatch more OPEN events', 1,
1338
- getEventCount(control, goog.ui.Component.EventType.OPEN));
1339
-
1340
- control.setOpen(false);
1341
- assertFalse('Control must not be opened', control.isOpen());
1342
- assertEquals('Control must have dispatched an CLOSE event', 1,
1343
- getEventCount(control, goog.ui.Component.EventType.CLOSE));
1344
- control.setEnabled(false);
1345
- assertFalse('Control must be disabled', control.isEnabled());
1346
-
1347
- control.setOpen(true);
1348
- assertTrue('Control must be opened, even when disabled',
1349
- control.isOpen());
1350
- assertEquals('Control must have dispatched another OPEN event', 2,
1351
- getEventCount(control, goog.ui.Component.EventType.OPEN));
1352
- }
1353
-
1354
- /**
1355
- * Tests {@link goog.ui.Control#getState}.
1356
- */
1357
- function testGetState() {
1358
- assertEquals('Controls must be in the default state', 0x00,
1359
- control.getState());
1360
- }
1361
-
1362
- /**
1363
- * Tests {@link goog.ui.Control#hasState}.
1364
- */
1365
- function testHasState() {
1366
- assertFalse('Control must not be disabled',
1367
- control.hasState(goog.ui.Component.State.DISABLED));
1368
- assertFalse('Control must not be in the HOVER state',
1369
- control.hasState(goog.ui.Component.State.HOVER));
1370
- assertFalse('Control must not be active',
1371
- control.hasState(goog.ui.Component.State.ACTIVE));
1372
- assertFalse('Control must not be selected',
1373
- control.hasState(goog.ui.Component.State.SELECTED));
1374
- assertFalse('Control must not be checked',
1375
- control.hasState(goog.ui.Component.State.CHECKED));
1376
- assertFalse('Control must not be focused',
1377
- control.hasState(goog.ui.Component.State.FOCUSED));
1378
- assertFalse('Control must not be open',
1379
- control.hasState(goog.ui.Component.State.OPEN));
1380
- }
1381
-
1382
- /**
1383
- * Tests {@link goog.ui.Control#setState}.
1384
- */
1385
- function testSetState() {
1386
- control.createDom();
1387
- control.setSupportedState(goog.ui.Component.State.ACTIVE, false);
1388
-
1389
- assertFalse('Control must not be active',
1390
- control.hasState(goog.ui.Component.State.ACTIVE));
1391
- control.setState(goog.ui.Component.State.ACTIVE, true);
1392
- assertFalse('Control must still be inactive (because it doesn\'t ' +
1393
- 'support the ACTIVE state)',
1394
- control.hasState(goog.ui.Component.State.ACTIVE));
1395
-
1396
- control.setSupportedState(goog.ui.Component.State.ACTIVE, true);
1397
-
1398
- control.setState(goog.ui.Component.State.ACTIVE, true);
1399
- assertTrue('Control must be active',
1400
- control.hasState(goog.ui.Component.State.ACTIVE));
1401
- assertTrue('Control must have the active CSS style',
1402
- goog.dom.classes.has(control.getElement(), 'goog-control-active'));
1403
-
1404
- control.setState(goog.ui.Component.State.ACTIVE, true);
1405
- assertTrue('Control must still be active',
1406
- control.hasState(goog.ui.Component.State.ACTIVE));
1407
- assertTrue('Control must still have the active CSS style',
1408
- goog.dom.classes.has(control.getElement(), 'goog-control-active'));
1409
-
1410
- assertTrue('No events must have been dispatched', noEventsDispatched());
1411
- }
1412
-
1413
- /**
1414
- * Tests {@link goog.ui.Control#setStateInternal}.
1415
- */
1416
- function testSetStateInternal() {
1417
- control.setStateInternal(0x00);
1418
- assertEquals('State should be 0x00', 0x00, control.getState());
1419
- control.setStateInternal(0x17);
1420
- assertEquals('State should be 0x17', 0x17, control.getState());
1421
- }
1422
-
1423
- /**
1424
- * Tests {@link goog.ui.Control#isSupportedState}.
1425
- */
1426
- function testIsSupportedState() {
1427
- assertTrue('Control must support DISABLED',
1428
- control.isSupportedState(goog.ui.Component.State.DISABLED));
1429
- assertTrue('Control must support HOVER',
1430
- control.isSupportedState(goog.ui.Component.State.HOVER));
1431
- assertTrue('Control must support ACTIVE',
1432
- control.isSupportedState(goog.ui.Component.State.ACTIVE));
1433
- assertTrue('Control must support FOCUSED',
1434
- control.isSupportedState(goog.ui.Component.State.FOCUSED));
1435
- assertFalse('Control must no support SELECTED',
1436
- control.isSupportedState(goog.ui.Component.State.SELECTED));
1437
- assertFalse('Control must no support CHECKED',
1438
- control.isSupportedState(goog.ui.Component.State.CHECKED));
1439
- assertFalse('Control must no support OPENED',
1440
- control.isSupportedState(goog.ui.Component.State.OPENED));
1441
- }
1442
-
1443
- /**
1444
- * Tests {@link goog.ui.Control#setSupportedState}.
1445
- */
1446
- function testSetSupportedState() {
1447
- control.setSupportedState(goog.ui.Component.State.HOVER, true);
1448
- assertTrue('Control must still support HOVER',
1449
- control.isSupportedState(goog.ui.Component.State.HOVER));
1450
-
1451
- control.setSupportedState(goog.ui.Component.State.HOVER, false);
1452
- assertFalse('Control must no longer support HOVER',
1453
- control.isSupportedState(goog.ui.Component.State.HOVER));
1454
-
1455
- control.setState(goog.ui.Component.State.ACTIVE, true);
1456
- control.setSupportedState(goog.ui.Component.State.ACTIVE, false);
1457
- assertFalse('Control must no longer support ACTIVE',
1458
- control.isSupportedState(goog.ui.Component.State.ACTIVE));
1459
- assertFalse('Control must no longer be in the ACTIVE state',
1460
- control.hasState(goog.ui.Component.State.ACTIVE));
1461
-
1462
- control.render(sandbox);
1463
-
1464
- control.setSupportedState(goog.ui.Component.State.FOCUSED, true);
1465
- control.setState(goog.ui.Component.State.FOCUSED, true);
1466
-
1467
- assertThrows('Must not be able to disable support for the FOCUSED ' +
1468
- "state for a control that's already in the document and focused",
1469
- function() {
1470
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
1471
- });
1472
-
1473
- assertTrue('No events must have been dispatched', noEventsDispatched());
1474
- }
1475
-
1476
-
1477
- /**
1478
- * Tests {@link goog.ui.Control#isAutoState}.
1479
- */
1480
- function testIsAutoState() {
1481
- assertTrue('Control must have DISABLED as an auto-state',
1482
- control.isAutoState(goog.ui.Component.State.DISABLED));
1483
- assertTrue('Control must have HOVER as an auto-state',
1484
- control.isAutoState(goog.ui.Component.State.HOVER));
1485
- assertTrue('Control must have ACTIVE as an auto-state',
1486
- control.isAutoState(goog.ui.Component.State.ACTIVE));
1487
- assertTrue('Control must have FOCUSED as an auto-state',
1488
- control.isAutoState(goog.ui.Component.State.FOCUSED));
1489
-
1490
- assertFalse('Control must not have SELECTED as an auto-state',
1491
- control.isAutoState(goog.ui.Component.State.SELECTED));
1492
- assertFalse('Control must not have CHECKED as an auto-state',
1493
- control.isAutoState(goog.ui.Component.State.CHECKED));
1494
- assertFalse('Control must not have OPENED as an auto-state',
1495
- control.isAutoState(goog.ui.Component.State.OPENED));
1496
-
1497
- assertTrue('No events must have been dispatched', noEventsDispatched());
1498
- }
1499
-
1500
- /**
1501
- * Tests {@link goog.ui.Control#setAutoStates}.
1502
- */
1503
- function testSetAutoStates() {
1504
- control.setAutoStates(goog.ui.Component.State.HOVER, false);
1505
- assertFalse('Control must not have HOVER as an auto-state',
1506
- control.isAutoState(goog.ui.Component.State.HOVER));
1507
-
1508
- control.setAutoStates(goog.ui.Component.State.ACTIVE |
1509
- goog.ui.Component.State.FOCUSED, false);
1510
- assertFalse('Control must not have ACTIVE as an auto-state',
1511
- control.isAutoState(goog.ui.Component.State.ACTIVE));
1512
- assertFalse('Control must not have FOCUSED as an auto-state',
1513
- control.isAutoState(goog.ui.Component.State.FOCUSED));
1514
-
1515
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
1516
- control.setAutoStates(goog.ui.Component.State.FOCUSED, true);
1517
- assertFalse('Control must not have FOCUSED as an auto-state if it no ' +
1518
- 'longer supports FOCUSED',
1519
- control.isAutoState(goog.ui.Component.State.FOCUSED));
1520
-
1521
- assertTrue('No events must have been dispatched', noEventsDispatched());
1522
- }
1523
-
1524
- /**
1525
- * Tests {@link goog.ui.Control#isDispatchTransitionEvents}.
1526
- */
1527
- function testIsDispatchTransitionEvents() {
1528
- assertTrue('Control must dispatch DISABLED transition events',
1529
- control.isDispatchTransitionEvents(goog.ui.Component.State.DISABLED));
1530
- assertTrue('Control must dispatch HOVER transition events',
1531
- control.isDispatchTransitionEvents(goog.ui.Component.State.HOVER));
1532
- assertTrue('Control must dispatch ACTIVE transition events',
1533
- control.isDispatchTransitionEvents(goog.ui.Component.State.ACTIVE));
1534
- assertTrue('Control must dispatch FOCUSED transition events',
1535
- control.isDispatchTransitionEvents(goog.ui.Component.State.FOCUSED));
1536
-
1537
- assertFalse('Control must not dispatch SELECTED transition events',
1538
- control.isDispatchTransitionEvents(goog.ui.Component.State.SELECTED));
1539
- assertFalse('Control must not dispatch CHECKED transition events',
1540
- control.isDispatchTransitionEvents(goog.ui.Component.State.CHECKED));
1541
- assertFalse('Control must not dispatch OPENED transition events',
1542
- control.isDispatchTransitionEvents(goog.ui.Component.State.OPENED));
1543
-
1544
- assertTrue('No events must have been dispatched', noEventsDispatched());
1545
- }
1546
-
1547
- /**
1548
- * Tests {@link goog.ui.Control#setDispatchTransitionEvents}.
1549
- */
1550
- function testSetDispatchTransitionEvents() {
1551
- control.setDispatchTransitionEvents(goog.ui.Component.State.HOVER, false);
1552
- assertFalse('Control must not dispatch HOVER transition events',
1553
- control.isDispatchTransitionEvents(goog.ui.Component.State.HOVER));
1554
-
1555
- control.setSupportedState(goog.ui.Component.State.SELECTED, true);
1556
- control.setDispatchTransitionEvents(goog.ui.Component.State.SELECTED,
1557
- true);
1558
- assertTrue('Control must dispatch SELECTED transition events',
1559
- control.isDispatchTransitionEvents(goog.ui.Component.State.SELECTED));
1560
-
1561
- assertTrue('No events must have been dispatched', noEventsDispatched());
1562
- }
1563
-
1564
- /**
1565
- * Tests {@link goog.ui.Control#isTransitionAllowed}.
1566
- */
1567
- function testIsTransitionAllowed() {
1568
- assertTrue('Control must support the HOVER state',
1569
- control.isSupportedState(goog.ui.Component.State.HOVER));
1570
- assertFalse('Control must not be in the HOVER state',
1571
- control.hasState(goog.ui.Component.State.HOVER));
1572
- assertTrue('Control must dispatch HOVER transition events',
1573
- control.isDispatchTransitionEvents(goog.ui.Component.State.HOVER));
1574
-
1575
- assertTrue('Control must be allowed to transition to the HOVER state',
1576
- control.isTransitionAllowed(goog.ui.Component.State.HOVER, true));
1577
- assertEquals('Control must have dispatched one HIGHLIGHT event', 1,
1578
- getEventCount(control, goog.ui.Component.EventType.HIGHLIGHT));
1579
- assertFalse('Control must not be highlighted',
1580
- control.hasState(goog.ui.Component.State.HOVER));
1581
-
1582
- control.setState(goog.ui.Component.State.HOVER, true);
1583
- control.setDispatchTransitionEvents(goog.ui.Component.State.HOVER, false);
1584
-
1585
- assertTrue('Control must be allowed to transition from the HOVER state',
1586
- control.isTransitionAllowed(goog.ui.Component.State.HOVER, false));
1587
- assertEquals('Control must not have dispatched any UNHIGHLIGHT events', 0,
1588
- getEventCount(control, goog.ui.Component.EventType.UNHIGHLIGHT));
1589
- assertTrue('Control must still be highlighted',
1590
- control.hasState(goog.ui.Component.State.HOVER));
1591
-
1592
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
1593
- resetEventCount();
1594
-
1595
- assertFalse('Control doesn\'t support the FOCUSED state',
1596
- control.isSupportedState(goog.ui.Component.State.FOCUSED));
1597
- assertFalse('Control must not be FOCUSED',
1598
- control.hasState(goog.ui.Component.State.FOCUSED));
1599
- assertFalse('Control must not be allowed to transition to the FOCUSED ' +
1600
- 'state',
1601
- control.isTransitionAllowed(goog.ui.Component.State.FOCUSED, true));
1602
- assertEquals('Control must not have dispatched any FOCUS events', 0,
1603
- getEventCount(control, goog.ui.Component.EventType.FOCUS));
1604
-
1605
- control.setEnabled(false);
1606
- resetEventCount();
1607
-
1608
- assertTrue('Control must support the DISABLED state',
1609
- control.isSupportedState(goog.ui.Component.State.DISABLED));
1610
- assertTrue('Control must be DISABLED',
1611
- control.hasState(goog.ui.Component.State.DISABLED));
1612
- assertFalse('Control must not be allowed to transition to the DISABLED ' +
1613
- 'state, because it is already there',
1614
- control.isTransitionAllowed(goog.ui.Component.State.DISABLED, true));
1615
- assertEquals('Control must not have dispatched any ENABLE events', 0,
1616
- getEventCount(control, goog.ui.Component.EventType.ENABLE));
1617
- }
1618
-
1619
- /**
1620
- * Tests {@link goog.ui.Control#handleKeyEvent}.
1621
- */
1622
- function testHandleKeyEvent() {
1623
- control.render()
1624
- control.isVisible = control.isEnabled = function() {
1625
- return true;
1626
- };
1627
-
1628
-
1629
- goog.testing.events.fireKeySequence(
1630
- control.getKeyEventTarget(), goog.events.KeyCodes.A);
1631
-
1632
- assertEquals('Control must not have dispatched an ACTION event', 0,
1633
- getEventCount(control, goog.ui.Component.EventType.ACTION));
1634
-
1635
- goog.testing.events.fireKeySequence(
1636
- control.getKeyEventTarget(), goog.events.KeyCodes.ENTER);
1637
- assertEquals('Control must have dispatched an ACTION event', 1,
1638
- getEventCount(control, goog.ui.Component.EventType.ACTION));
1639
- }
1640
-
1641
-
1642
- /**
1643
- * Tests {@link goog.ui.Control#performActionInternal}.
1644
- */
1645
- function testPerformActionInternal() {
1646
- assertFalse('Control must not be checked', control.isChecked());
1647
- assertFalse('Control must not be selected', control.isSelected());
1648
- assertFalse('Control must not be open', control.isOpen());
1649
-
1650
- control.performActionInternal();
1651
-
1652
- assertFalse('Control must not be checked', control.isChecked());
1653
- assertFalse('Control must not be selected', control.isSelected());
1654
- assertFalse('Control must not be open', control.isOpen());
1655
- assertEquals('Control must have dispatched an ACTION event', 1,
1656
- getEventCount(control, goog.ui.Component.EventType.ACTION));
1657
-
1658
- control.setSupportedState(goog.ui.Component.State.CHECKED, true);
1659
- control.setSupportedState(goog.ui.Component.State.SELECTED, true);
1660
- control.setSupportedState(goog.ui.Component.State.OPENED, true);
1661
-
1662
- control.performActionInternal();
1663
-
1664
- assertTrue('Control must be checked', control.isChecked());
1665
- assertTrue('Control must be selected', control.isSelected());
1666
- assertTrue('Control must be open', control.isOpen());
1667
- assertEquals('Control must have dispatched a CHECK event', 1,
1668
- getEventCount(control, goog.ui.Component.EventType.CHECK));
1669
- assertEquals('Control must have dispatched a SELECT event', 1,
1670
- getEventCount(control, goog.ui.Component.EventType.SELECT));
1671
- assertEquals('Control must have dispatched a OPEN event', 1,
1672
- getEventCount(control, goog.ui.Component.EventType.OPEN));
1673
- assertEquals('Control must have dispatched another ACTION event', 2,
1674
- getEventCount(control, goog.ui.Component.EventType.ACTION));
1675
-
1676
- control.performActionInternal();
1677
-
1678
- assertFalse('Control must not be checked', control.isChecked());
1679
- assertTrue('Control must be selected', control.isSelected());
1680
- assertFalse('Control must not be open', control.isOpen());
1681
- assertEquals('Control must have dispatched an UNCHECK event', 1,
1682
- getEventCount(control, goog.ui.Component.EventType.UNCHECK));
1683
- assertEquals('Control must not have dispatched an UNSELECT event', 0,
1684
- getEventCount(control, goog.ui.Component.EventType.UNSELECT));
1685
- assertEquals('Control must have dispatched a CLOSE event', 1,
1686
- getEventCount(control, goog.ui.Component.EventType.CLOSE));
1687
- assertEquals('Control must have dispatched another ACTION event', 3,
1688
- getEventCount(control, goog.ui.Component.EventType.ACTION));
1689
- }
1690
-
1691
- /**
1692
- * Tests {@link goog.ui.Control#handleMouseOver}.
1693
- */
1694
- function testHandleMouseOver() {
1695
- control.setContent(goog.dom.createDom('span', {id: 'caption'}, 'Hello'));
1696
- control.render(sandbox);
1697
-
1698
- var element = control.getElement();
1699
- var caption = goog.dom.getElement('caption');
1700
-
1701
- // Verify baseline assumptions.
1702
- assertTrue('Caption must be contained within the control',
1703
- goog.dom.contains(element, caption));
1704
- assertTrue('Control must be enabled', control.isEnabled());
1705
- assertTrue('HOVER must be an auto-state',
1706
- control.isAutoState(goog.ui.Component.State.HOVER));
1707
- assertFalse('Control must not start out highlighted',
1708
- control.isHighlighted());
1709
-
1710
- // Scenario 1: relatedTarget is contained within the control's DOM.
1711
- goog.testing.events.fireMouseOverEvent(element, caption);
1712
- assertTrue('No events must have been dispatched for internal mouse move',
1713
- noEventsDispatched());
1714
- assertFalse('Control must not be highlighted for internal mouse move',
1715
- control.isHighlighted());
1716
- resetEventCount();
1717
-
1718
- // Scenario 2: preventDefault() is called on the ENTER event.
1719
- var key = goog.events.listen(control, goog.ui.Component.EventType.ENTER,
1720
- function(e) {
1721
- e.preventDefault();
1722
- });
1723
- goog.testing.events.fireMouseOverEvent(element, sandbox);
1724
- assertEquals('Control must have dispatched 1 ENTER event', 1,
1725
- getEventCount(control, goog.ui.Component.EventType.ENTER));
1726
- assertFalse('Control must not be highlighted if ENTER is canceled',
1727
- control.isHighlighted());
1728
- goog.events.unlistenByKey(key);
1729
- resetEventCount();
1730
-
1731
- // Scenario 3: Control is disabled.
1732
- control.setEnabled(false);
1733
- goog.testing.events.fireMouseOverEvent(element, sandbox);
1734
- assertEquals('Control must dispatch ENTER event on mouseover even if ' +
1735
- 'disabled', 1,
1736
- getEventCount(control, goog.ui.Component.EventType.ENTER));
1737
- assertFalse('Control must not be highlighted if it is disabled',
1738
- control.isHighlighted());
1739
- control.setEnabled(true);
1740
- resetEventCount();
1741
-
1742
- // Scenario 4: HOVER is not an auto-state.
1743
- control.setAutoStates(goog.ui.Component.State.HOVER, false);
1744
- goog.testing.events.fireMouseOverEvent(element, sandbox);
1745
- assertEquals('Control must dispatch ENTER event on mouseover even if ' +
1746
- 'HOVER is not an auto-state', 1,
1747
- getEventCount(control, goog.ui.Component.EventType.ENTER));
1748
- assertFalse('Control must not be highlighted if HOVER isn\'t an auto-' +
1749
- 'state', control.isHighlighted());
1750
- control.setAutoStates(goog.ui.Component.State.HOVER, true);
1751
- resetEventCount();
1752
-
1753
- // Scenario 5: All is well.
1754
- goog.testing.events.fireMouseOverEvent(element, sandbox);
1755
- assertEquals('Control must dispatch ENTER event on mouseover', 1,
1756
- getEventCount(control, goog.ui.Component.EventType.ENTER));
1757
- assertEquals('Control must dispatch HIGHLIGHT event on mouseover', 1,
1758
- getEventCount(control, goog.ui.Component.EventType.HIGHLIGHT));
1759
- assertTrue('Control must be highlighted', control.isHighlighted());
1760
- resetEventCount();
1761
-
1762
- // Scenario 6: relatedTarget is null
1763
- control.setHighlighted(false);
1764
- goog.testing.events.fireMouseOverEvent(element, null);
1765
- assertEquals('Control must dispatch ENTER event on mouseover', 1,
1766
- getEventCount(control, goog.ui.Component.EventType.ENTER));
1767
- assertEquals('Control must dispatch HIGHLIGHT event on mouseover', 1,
1768
- getEventCount(control, goog.ui.Component.EventType.HIGHLIGHT));
1769
- assertTrue('Control must be highlighted', control.isHighlighted());
1770
- resetEventCount();
1771
- }
1772
-
1773
- /**
1774
- * Tests {@link goog.ui.Control#handleMouseOut}.
1775
- */
1776
- function testHandleMouseOut() {
1777
- control.setContent(goog.dom.createDom('span', {id: 'caption'}, 'Hello'));
1778
- control.setHighlighted(true);
1779
- control.setActive(true);
1780
-
1781
- resetEventCount();
1782
-
1783
- control.render(sandbox);
1784
-
1785
- var element = control.getElement();
1786
- var caption = goog.dom.getElement('caption');
1787
-
1788
- // Verify baseline assumptions.
1789
- assertTrue('Caption must be contained within the control',
1790
- goog.dom.contains(element, caption));
1791
- assertTrue('Control must be enabled', control.isEnabled());
1792
- assertTrue('HOVER must be an auto-state',
1793
- control.isAutoState(goog.ui.Component.State.HOVER));
1794
- assertTrue('ACTIVE must be an auto-state',
1795
- control.isAutoState(goog.ui.Component.State.ACTIVE));
1796
- assertTrue('Control must start out highlighted', control.isHighlighted());
1797
- assertTrue('Control must start out active', control.isActive());
1798
-
1799
- // Scenario 1: relatedTarget is contained within the control's DOM.
1800
- goog.testing.events.fireMouseOutEvent(element, caption);
1801
- assertTrue('No events must have been dispatched for internal mouse move',
1802
- noEventsDispatched());
1803
- assertTrue('Control must not be un-highlighted for internal mouse move',
1804
- control.isHighlighted());
1805
- assertTrue('Control must not be deactivated for internal mouse move',
1806
- control.isActive());
1807
- resetEventCount();
1808
-
1809
- // Scenario 2: preventDefault() is called on the LEAVE event.
1810
- var key = goog.events.listen(control, goog.ui.Component.EventType.LEAVE,
1811
- function(e) {
1812
- e.preventDefault();
1813
- });
1814
- goog.testing.events.fireMouseOutEvent(element, sandbox);
1815
- assertEquals('Control must have dispatched 1 LEAVE event', 1,
1816
- getEventCount(control, goog.ui.Component.EventType.LEAVE));
1817
- assertTrue('Control must not be un-highlighted if LEAVE is canceled',
1818
- control.isHighlighted());
1819
- assertTrue('Control must not be deactivated if LEAVE is canceled',
1820
- control.isActive());
1821
- goog.events.unlistenByKey(key);
1822
- resetEventCount();
1823
-
1824
- // Scenario 3: ACTIVE is not an auto-state.
1825
- control.setAutoStates(goog.ui.Component.State.ACTIVE, false);
1826
- goog.testing.events.fireMouseOutEvent(element, sandbox);
1827
- assertEquals('Control must dispatch LEAVE event on mouseout even if ' +
1828
- 'ACTIVE is not an auto-state', 1,
1829
- getEventCount(control, goog.ui.Component.EventType.LEAVE));
1830
- assertTrue('Control must not be deactivated if ACTIVE isn\'t an auto-' +
1831
- 'state', control.isActive());
1832
- assertFalse('Control must be un-highlighted even if ACTIVE isn\'t an ' +
1833
- 'auto-state', control.isHighlighted());
1834
- control.setAutoStates(goog.ui.Component.State.ACTIVE, true);
1835
- control.setHighlighted(true);
1836
- resetEventCount();
1837
-
1838
- // Scenario 4: HOVER is not an auto-state.
1839
- control.setAutoStates(goog.ui.Component.State.HOVER, false);
1840
- goog.testing.events.fireMouseOutEvent(element, sandbox);
1841
- assertEquals('Control must dispatch LEAVE event on mouseout even if ' +
1842
- 'HOVER is not an auto-state', 1,
1843
- getEventCount(control, goog.ui.Component.EventType.LEAVE));
1844
- assertFalse('Control must be deactivated even if HOVER isn\'t an auto-' +
1845
- 'state', control.isActive());
1846
- assertTrue('Control must not be un-highlighted if HOVER isn\'t an auto-' +
1847
- 'state', control.isHighlighted());
1848
- control.setAutoStates(goog.ui.Component.State.HOVER, true);
1849
- control.setActive(true);
1850
- resetEventCount();
1851
-
1852
- // Scenario 5: All is well.
1853
- goog.testing.events.fireMouseOutEvent(element, sandbox);
1854
- assertEquals('Control must dispatch LEAVE event on mouseout', 1,
1855
- getEventCount(control, goog.ui.Component.EventType.LEAVE));
1856
- assertEquals('Control must dispatch DEACTIVATE event on mouseout', 1,
1857
- getEventCount(control, goog.ui.Component.EventType.DEACTIVATE));
1858
- assertEquals('Control must dispatch UNHIGHLIGHT event on mouseout', 1,
1859
- getEventCount(control, goog.ui.Component.EventType.UNHIGHLIGHT));
1860
- assertFalse('Control must be deactivated', control.isActive());
1861
- assertFalse('Control must be unhighlighted', control.isHighlighted());
1862
- resetEventCount();
1863
-
1864
- // Scenario 6: relatedTarget is null
1865
- control.setActive(true);
1866
- control.setHighlighted(true);
1867
- goog.testing.events.fireMouseOutEvent(element, null);
1868
- assertEquals('Control must dispatch LEAVE event on mouseout', 1,
1869
- getEventCount(control, goog.ui.Component.EventType.LEAVE));
1870
- assertEquals('Control must dispatch DEACTIVATE event on mouseout', 1,
1871
- getEventCount(control, goog.ui.Component.EventType.DEACTIVATE));
1872
- assertEquals('Control must dispatch UNHIGHLIGHT event on mouseout', 1,
1873
- getEventCount(control, goog.ui.Component.EventType.UNHIGHLIGHT));
1874
- assertFalse('Control must be deactivated', control.isActive());
1875
- assertFalse('Control must be unhighlighted', control.isHighlighted());
1876
- resetEventCount();
1877
- }
1878
-
1879
- function testIsMouseEventWithinElement() {
1880
- var child = goog.dom.createElement('div');
1881
- var parent = goog.dom.createDom('div', null, child);
1882
- var notChild = goog.dom.createElement('div');
1883
-
1884
- var event = new goog.testing.events.Event('mouseout');
1885
- event.relatedTarget = child;
1886
- assertTrue('Event is within element',
1887
- goog.ui.Control.isMouseEventWithinElement_(event, parent));
1888
-
1889
- var event = new goog.testing.events.Event('mouseout');
1890
- event.relatedTarget = notChild;
1891
- assertFalse('Event is not within element',
1892
- goog.ui.Control.isMouseEventWithinElement_(event, parent));
1893
- }
1894
-
1895
- function testHandleMouseDown() {
1896
- control.render(sandbox);
1897
- assertFalse('preventDefault() must have been called for control that ' +
1898
- 'doesn\'t support text selection',
1899
- fireMouseDownAndFocus(control.getElement()));
1900
- assertTrue('Control must be highlighted', control.isHighlighted());
1901
- assertTrue('Control must be active', control.isActive());
1902
-
1903
- if (testFocus) {
1904
- // Expected to fail on IE and Mac Safari 3. IE calls focus handlers
1905
- // asynchronously, and Mac Safari 3 doesn't support keyboard focus.
1906
- expectedFailures.expectFailureFor(goog.userAgent.IE);
1907
- expectedFailures.expectFailureFor(isMacSafari3());
1908
- try {
1909
- assertTrue('Control must be focused', control.isFocused());
1910
- } catch (e) {
1911
- expectedFailures.handleException(e);
1912
- }
1913
- }
1914
- }
1915
-
1916
- function testHandleMouseDownForDisabledControl() {
1917
- control.setEnabled(false);
1918
- control.render(sandbox);
1919
- assertFalse('preventDefault() must have been called for control that ' +
1920
- 'doesn\'t support text selection',
1921
- fireMouseDownAndFocus(control.getElement()));
1922
- assertFalse('Control must not be highlighted', control.isHighlighted());
1923
- assertFalse('Control must not be active', control.isActive());
1924
- if (testFocus) {
1925
- assertFalse('Control must not be focused', control.isFocused());
1926
- }
1927
- }
1928
-
1929
- function testHandleMouseDownForNoHoverAutoState() {
1930
- control.setAutoStates(goog.ui.Component.State.HOVER, false);
1931
- control.render(sandbox);
1932
- assertFalse('preventDefault() must have been called for control that ' +
1933
- 'doesn\'t support text selection',
1934
- fireMouseDownAndFocus(control.getElement()));
1935
- assertFalse('Control must not be highlighted', control.isHighlighted());
1936
- assertTrue('Control must be active', control.isActive());
1937
-
1938
- if (testFocus) {
1939
- // Expected to fail on IE and Mac Safari 3. IE calls focus handlers
1940
- // asynchronously, and Mac Safari 3 doesn't support keyboard focus.
1941
- expectedFailures.expectFailureFor(goog.userAgent.IE);
1942
- expectedFailures.expectFailureFor(isMacSafari3());
1943
- try {
1944
- assertTrue('Control must be focused', control.isFocused());
1945
- } catch (e) {
1946
- expectedFailures.handleException(e);
1947
- }
1948
- }
1949
- }
1950
-
1951
- function testHandleMouseDownForRightMouseButton() {
1952
- control.render(sandbox);
1953
- assertTrue('preventDefault() must not have been called for right ' +
1954
- 'mouse button', fireMouseDownAndFocus(control.getElement(),
1955
- goog.events.BrowserEvent.MouseButton.RIGHT));
1956
- assertTrue('Control must be highlighted', control.isHighlighted());
1957
- assertFalse('Control must not be active', control.isActive());
1958
-
1959
- if (testFocus) {
1960
- // Expected to fail on IE and Mac Safari 3. IE calls focus handlers
1961
- // asynchronously, and Mac Safari 3 doesn't support keyboard focus.
1962
- expectedFailures.expectFailureFor(goog.userAgent.IE);
1963
- expectedFailures.expectFailureFor(isMacSafari3());
1964
- try {
1965
- assertTrue('Control must be focused', control.isFocused());
1966
- } catch (e) {
1967
- expectedFailures.handleException(e);
1968
- }
1969
- }
1970
- }
1971
-
1972
- function testHandleMouseDownForNoActiveAutoState() {
1973
- control.setAutoStates(goog.ui.Component.State.ACTIVE, false);
1974
- control.render(sandbox);
1975
- assertFalse('preventDefault() must have been called for control that ' +
1976
- 'doesn\'t support text selection',
1977
- fireMouseDownAndFocus(control.getElement()));
1978
- assertTrue('Control must be highlighted', control.isHighlighted());
1979
- assertFalse('Control must not be active', control.isActive());
1980
-
1981
- if (testFocus) {
1982
- // Expected to fail on IE and Mac Safari 3. IE calls focus handlers
1983
- // asynchronously, and Mac Safari 3 doesn't support keyboard focus.
1984
- expectedFailures.expectFailureFor(goog.userAgent.IE);
1985
- expectedFailures.expectFailureFor(isMacSafari3());
1986
- try {
1987
- assertTrue('Control must be focused', control.isFocused());
1988
- } catch (e) {
1989
- expectedFailures.handleException(e);
1990
- }
1991
- }
1992
- }
1993
-
1994
- function testHandleMouseDownForNonFocusableControl() {
1995
- control.setSupportedState(goog.ui.Component.State.FOCUSED, false);
1996
- control.render(sandbox);
1997
- assertFalse('preventDefault() must have been called for control that ' +
1998
- 'doesn\'t support text selection',
1999
- fireMouseDownAndFocus(control.getElement()));
2000
- assertTrue('Control must be highlighted', control.isHighlighted());
2001
- assertTrue('Control must be active', control.isActive());
2002
- assertFalse('Control must not be focused', control.isFocused());
2003
- }
2004
-
2005
- // TODO(user): Find out why this is flaky on FF2/Linux and FF1.5/Win.
2006
- //function testHandleMouseDownForSelectableControl() {
2007
- // control.setAllowTextSelection(true);
2008
- // control.render(sandbox);
2009
- // assertTrue('preventDefault() must not have been called for control ' +
2010
- // 'that supports text selection',
2011
- // fireMouseDownAndFocus(control.getElement()));
2012
- // assertTrue('Control must be highlighted', control.isHighlighted());
2013
- // assertTrue('Control must be active', control.isActive());
2014
- // // Expected to fail on IE and Mac Safari 3. IE calls focus handlers
2015
- // // asynchronously, and Mac Safari 3 doesn't support keyboard focus.
2016
- // expectedFailures.expectFailureFor(goog.userAgent.IE);
2017
- // expectedFailures.expectFailureFor(isMacSafari3());
2018
- // try {
2019
- // assertTrue('Control must be focused', control.isFocused());
2020
- // } catch (e) {
2021
- // expectedFailures.handleException(e);
2022
- // }
2023
- //}
2024
-
2025
-
2026
- /**
2027
- * Tests {@link goog.ui.Control#handleMouseUp}.
2028
- */
2029
- function testHandleMouseUp() {
2030
- control.setActive(true);
2031
-
2032
- // Override performActionInternal() for testing purposes.
2033
- var actionPerformed = false;
2034
- control.performActionInternal = function() {
2035
- actionPerformed = true;
2036
- return true;
2037
- };
2038
-
2039
- resetEventCount();
2040
-
2041
- control.render(sandbox);
2042
- var element = control.getElement();
2043
-
2044
- // Verify baseline assumptions.
2045
- assertTrue('Control must be enabled', control.isEnabled());
2046
- assertTrue('HOVER must be an auto-state',
2047
- control.isAutoState(goog.ui.Component.State.HOVER));
2048
- assertTrue('ACTIVE must be an auto-state',
2049
- control.isAutoState(goog.ui.Component.State.ACTIVE));
2050
- assertFalse('Control must not start out highlighted',
2051
- control.isHighlighted());
2052
- assertTrue('Control must start out active', control.isActive());
2053
-
2054
- // Scenario 1: Control is disabled.
2055
- control.setEnabled(false);
2056
- goog.testing.events.fireMouseUpEvent(element);
2057
- assertFalse('Disabled control must not highlight on mouseup',
2058
- control.isHighlighted());
2059
- assertFalse('No action must have been performed', actionPerformed);
2060
- control.setActive(true);
2061
- control.setEnabled(true);
2062
-
2063
- // Scenario 2: HOVER is not an auto-state.
2064
- control.setAutoStates(goog.ui.Component.State.HOVER, false);
2065
- goog.testing.events.fireMouseUpEvent(element);
2066
- assertFalse('Control must not highlight on mouseup if HOVER isn\'t an ' +
2067
- 'auto-state', control.isHighlighted());
2068
- assertTrue('Action must have been performed even if HOVER isn\'t an ' +
2069
- 'auto-state', actionPerformed);
2070
- assertFalse('Control must have been deactivated on mouseup even if ' +
2071
- 'HOVER isn\'t an auto-state', control.isActive());
2072
- actionPerformed = false;
2073
- control.setActive(true);
2074
- control.setAutoStates(goog.ui.Component.State.HOVER, true);
2075
-
2076
- // Scenario 3: Control is not active.
2077
- control.setActive(false);
2078
- goog.testing.events.fireMouseUpEvent(element);
2079
- assertTrue('Control must highlight on mouseup, even if inactive',
2080
- control.isHighlighted());
2081
- assertFalse('No action must have been performed if control is inactive',
2082
- actionPerformed);
2083
- assertFalse('Inactive control must remain inactive after mouseup',
2084
- control.isActive());
2085
- control.setHighlighted(false);
2086
- control.setActive(true);
2087
-
2088
- // Scenario 4: performActionInternal() returns false.
2089
- control.performActionInternal = function() {
2090
- actionPerformed = true;
2091
- return false;
2092
- };
2093
- goog.testing.events.fireMouseUpEvent(element);
2094
- assertTrue('Control must highlight on mouseup, even if no action is ' +
2095
- 'performed', control.isHighlighted());
2096
- assertTrue('performActionInternal must have been called',
2097
- actionPerformed);
2098
- assertTrue('Control must not deactivate if performActionInternal ' +
2099
- 'returns false', control.isActive());
2100
- control.setHighlighted(false);
2101
- actionPerformed = false;
2102
- control.performActionInternal = function() {
2103
- actionPerformed = true;
2104
- return true;
2105
- };
2106
-
2107
- // Scenario 5: ACTIVE is not an auto-state.
2108
- control.setAutoStates(goog.ui.Component.State.ACTIVE, false);
2109
- goog.testing.events.fireMouseUpEvent(element);
2110
- assertTrue('Control must highlight on mouseup even if ACTIVE isn\'t an ' +
2111
- 'auto-state', control.isHighlighted());
2112
- assertTrue('Action must have been performed even if ACTIVE isn\'t an ' +
2113
- 'auto-state', actionPerformed);
2114
- assertTrue('Control must not have been deactivated on mouseup if ' +
2115
- 'ACTIVE isn\'t an auto-state', control.isActive());
2116
- actionPerformed = false;
2117
- control.setHighlighted(false);
2118
- control.setAutoStates(goog.ui.Component.State.ACTIVE, true);
2119
-
2120
- // Scenario 6: All is well.
2121
- goog.testing.events.fireMouseUpEvent(element);
2122
- assertTrue('Control must highlight on mouseup', control.isHighlighted());
2123
- assertTrue('Action must have been performed', actionPerformed);
2124
- assertFalse('Control must have been deactivated', control.isActive());
2125
- }
2126
- </script>
2127
- </body>
2128
- </html>