PageRenderTime 26ms CodeModel.GetById 17ms RepoModel.GetById 1ms app.codeStats 0ms

/tests/automatic_tests/save_devtools_settings/index.html

https://github.com/qiongocean/node-webkit
HTML | 183 lines | 173 code | 10 blank | 0 comment | 0 complexity | b2b8370728a9a15def95994a7a01b899 MD5 | raw file
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Test case for save devtools settings</title>
  6. </head>
  7. <body>
  8. <p id="wait" style="font-size:1.5em">Please wait to be closed.</p>
  9. <input type="text" id="color" placeholder="css color"/>
  10. <script>
  11. var gui = require('nw.gui');
  12. var win = gui.Window.get();
  13. var result = new Array();
  14. //action: 1 change the devtools settings
  15. var action = gui.App.argv[0];
  16. //load devtools into iframe
  17. win.showDevTools('', true);
  18. win.on("devtools-opened", function(url) {
  19. var iframe_devtools = document.createElement("iframe");
  20. iframe_devtools.id = 'devtools';
  21. iframe_devtools.src = url;
  22. iframe_devtools.height = '1000';
  23. iframe_devtools.width = '1000';
  24. function change_setttings() {
  25. var scripts = devtools.document.getElementsByClassName('scripts');
  26. // make sure it is complete
  27. if(scripts == undefined || scripts[0] == undefined || scripts[0].click == undefined)
  28. setTimeout(change_setttings, 3000);
  29. else {
  30. // open settitng
  31. devtools.WebInspector.SettingsController.prototype.showSettingsScreen();
  32. // save original settings
  33. // general
  34. devtools.WebInspector.settingsController._settingsScreen._tabbedPane._tabs[0]._tabbedPane.selectTab('general', true);
  35. result.push(devtools.document.getElementsByName('Disable cache (while DevTools is open)')[0].checked);
  36. result.push(devtools.document.getElementsByName('Disable JavaScript')[0].checked);
  37. result.push(devtools.document.getElementsByName('Split panels vertically when docked to right')[0].checked);
  38. // 0~3
  39. for (var i = 0; i < 4; i++)
  40. if (devtools.document.getElementsByClassName('toplevel')[0].childNodes[1][i]) {
  41. result.push(i);
  42. break;
  43. }
  44. result.push(devtools.document.getElementsByName('Show user agent styles')[0].checked);
  45. result.push(devtools.document.getElementsByName('Word wrap')[0].checked);
  46. result.push(devtools.document.getElementsByName('Show Shadow DOM')[0].checked);
  47. result.push(devtools.document.getElementsByName('Show rulers')[0].checked);
  48. result.push(devtools.document.getElementsByName('Show paint rectangles')[0].checked);
  49. result.push(devtools.document.getElementsByName('Show composited layer borders')[0].checked);
  50. result.push(devtools.document.getElementsByName('Search in content scripts')[0].checked);
  51. result.push(devtools.document.getElementsByName('Enable JS source maps')[0].checked);
  52. result.push(devtools.document.getElementsByName('Enable CSS source maps')[0].checked);
  53. // 0~3
  54. result.push(devtools.document.getElementsByClassName('toplevel')[0].childNodes[1].selectedIndex);
  55. result.push(devtools.document.getElementsByName('Show whitespace characters')[0].checked);
  56. result.push(devtools.document.getElementsByName("Detect indentation")[0].checked);
  57. result.push(devtools.document.getElementsByName('Limit number of captured JS stack frames')[0].checked);
  58. result.push(devtools.document.getElementsByClassName('numeric')[0].value);
  59. result.push(devtools.document.getElementsByName('Show CPU activity on the ruler')[0].checked);
  60. result.push(devtools.document.getElementsByName('Log XMLHttpRequests')[0].checked);
  61. result.push(devtools.document.getElementsByName('Preserve log upon navigation')[0].checked);
  62. if (process.platform != 'darwin')
  63. result.push(devtools.document.getElementsByName('Enable Ctrl + 1-9 shortcut to switch panels')[0].checked);
  64. else
  65. result.push(devtools.document.getElementsByName('Enable Cmd + 1-9 shortcut to switch panels')[0].checked);
  66. // overrides
  67. devtools.WebInspector.settingsController._settingsScreen._tabbedPane._tabs[0]._tabbedPane.selectTab("overrides", true);
  68. result.push(devtools.document.getElementsByClassName('help-block')[0].childNodes[0].childNodes[0].checked);//
  69. result.push(devtools.document.getElementsByClassName('help-block')[0].childNodes[1].childNodes[0].childNodes[0].checked);//Enable on Devtools startup
  70. // 0~21
  71. result.push(devtools.document.getElementsByClassName('help-block')[1].childNodes[0].childNodes[1].childNodes[0].selectedIndex);
  72. result.push(devtools.document.getElementsByName('User Agent')[0].checked);//Overrides User agent
  73. // ignore next
  74. //result.push(devtools.document.getElementById('metrics-override-checkbox').checked);
  75. result.push(devtools.document.getElementsByName('Device metrics')[0].checked);
  76. // result.push(devtools.document.getElementById('metrics-override-width').value);
  77. // result.push(devtools.document.getElementById('metrics-override-height').value);
  78. // ignore next next
  79. result.push(devtools.document.getElementsByName('Fit in window')[0].checked);
  80. result.push(devtools.document.getElementsByName('Override Geolocation')[0].checked);
  81. result.push(devtools.document.getElementById('geolocation-override-latitude').value);
  82. result.push(devtools.document.getElementById('geolocation-override-longitude').value);
  83. result.push(devtools.document.getElementById('geolocation-error').checked);
  84. result.push(devtools.document.getElementsByName('Override Device Orientation')[0].checked);
  85. result.push(devtools.document.getElementById('device-orientation-override-alpha').value);
  86. result.push(devtools.document.getElementById('device-orientation-override-beta').value);
  87. result.push(devtools.document.getElementById('device-orientation-override-gamma').value);
  88. result.push(devtools.document.getElementsByClassName('help-block')[4].childNodes[0].childNodes[0].childNodes[0].checked);
  89. result.push(devtools.document.getElementsByClassName('help-block')[5].childNodes[0].childNodes[0].childNodes[0].checked);
  90. // 0~8
  91. //result.push(devtools.document.getElementsByClassName('help-block')[5].childNodes[0].childNodes[1].selectedIndex);
  92. result.push(devtools.document.getElementsByName('Emulate CSS media')[0].checked);
  93. if (action == '1') {
  94. var i = 0;
  95. // change original settings
  96. // general
  97. devtools.WebInspector.settingsController._settingsScreen._tabbedPane._tabs[0]._tabbedPane.selectTab('general', true);
  98. devtools.document.getElementsByName('Disable cache (while DevTools is open)')[0].click(); i++;
  99. devtools.document.getElementsByName('Disable JavaScript')[0].click(); i++;
  100. devtools.document.getElementsByName('Split panels vertically when docked to right')[0].click(); i++;
  101. // 0~3
  102. devtools.document.getElementsByClassName('toplevel')[0].childNodes[1][(result[i++] + 1) % 4].click();
  103. devtools.document.getElementsByName('Show user agent styles')[0].click(); i++;
  104. devtools.document.getElementsByName('Word wrap')[0].click(); i++;
  105. devtools.document.getElementsByName('Show Shadow DOM')[0].click(); i++;
  106. devtools.document.getElementsByName('Show rulers')[0].click(); i++;
  107. devtools.document.getElementsByName('Show paint rectangles')[0].click(); i++;
  108. devtools.document.getElementsByName('Show composited layer borders')[0].click(); i++;
  109. devtools.document.getElementsByName('Search in content scripts')[0].click(); i++;
  110. devtools.document.getElementsByName('Enable JS source maps')[0].click(); i++;
  111. devtools.document.getElementsByName('Enable CSS source maps')[0].click(); i++;
  112. if (!result[i - 1])
  113. // 0~3
  114. devtools.document.getElementsByClassName('toplevel')[0].childNodes[1].selectedIndex = (result[i++] + 1) % 4;
  115. devtools.document.getElementsByName('Show whitespace characters')[0].click(); i++;
  116. devtools.document.getElementsByName("Detect indentation")[0].click(); i++;
  117. devtools.document.getElementsByName('Limit number of captured JS stack frames')[0].click(); i++;
  118. if (!result[i - 1])
  119. devtools.document.getElementsByClassName('numeric')[0].value = (result[i++] + 1) % 10;
  120. devtools.document.getElementsByName('Show CPU activity on the ruler')[0].click(); i++;
  121. devtools.document.getElementsByName('Log XMLHttpRequests')[0].click(); i++;
  122. devtools.document.getElementsByName('Preserve log upon navigation')[0].click(); i++;
  123. if (process.platform != 'darwin')
  124. devtools.document.getElementsByName('Enable Ctrl + 1-9 shortcut to switch panels')[0].click();
  125. else
  126. devtools.document.getElementsByName('Enable Cmd + 1-9 shortcut to switch panels')[0].click();
  127. i++;
  128. // overrides
  129. devtools.WebInspector.settingsController._settingsScreen._tabbedPane._tabs[0]._tabbedPane.selectTab("overrides", true);
  130. devtools.document.getElementsByClassName('help-block')[0].childNodes[0].childNodes[0].click(); i++;//
  131. devtools.document.getElementsByClassName('help-block')[0].childNodes[1].childNodes[0].childNodes[0].click(); i++//Enable on Devtools startup
  132. if (!result[i - 1])
  133. // 0~21
  134. devtools.document.getElementsByClassName('help-block')[1].childNodes[0].childNodes[1].childNodes[0].selectedIndex = (result[i++] + 1) % 22;
  135. // ignore next
  136. //devtools.document.getElementById('metrics-override-checkbox').click(); i++;
  137. devtools.document.getElementsByName('Device metrics')[0].click(); i++;
  138. // result.push(devtools.document.getElementById('metrics-override-width').value);
  139. // result.push(devtools.document.getElementById('metrics-override-height').value);
  140. // ignore next next
  141. devtools.document.getElementsByName('Fit in window')[0].click(); i++;
  142. devtools.document.getElementsByName('Override Geolocation')[0].click(); i++;
  143. if (!result[i - 1]) {
  144. devtools.document.getElementById('geolocation-override-latitude').value = (result[i++] + 1) % 10;
  145. devtools.document.getElementById('geolocation-override-longitude').value = (result[i++] + 1) % 10;
  146. }
  147. devtools.document.getElementById('geolocation-error').click(); i++;
  148. devtools.document.getElementsByName('Override Device Orientation')[0].click(); i++;
  149. if (!result[i - 1]) {
  150. devtools.document.getElementById('device-orientation-override-alpha').value = (result[i++] + 1) % 10;
  151. devtools.document.getElementById('device-orientation-override-beta').value = (result[i++] + 1) % 10;
  152. devtools.document.getElementById('device-orientation-override-gamma').value = (result[i++] + 1) % 10;
  153. }
  154. devtools.document.getElementsByClassName('help-block')[4].childNodes[0].childNodes[0].childNodes[0].click(); i++;
  155. devtools.document.getElementsByClassName('help-block')[5].childNodes[0].childNodes[0].childNodes[0].click(); i++;
  156. devtools.document.getElementsByName('Emulate CSS media')[0].checked;
  157. //if (!result[i - 1])
  158. // 0~8
  159. // devtools.document.getElementsByClassName('help-block')[5].childNodes[0].childNodes[1].selectedIndex = (result[i++] + 1) % 9;
  160. }
  161. win.showDevTools();
  162. var client = require('../../nw_test_app').createClient({
  163. argv: gui.App.argv,
  164. data: result
  165. });
  166. }
  167. }
  168. iframe_devtools.onload = change_setttings;
  169. document.getElementById("wait").appendChild(iframe_devtools);
  170. });
  171. </script>
  172. </body>
  173. </html>