-cases.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. (function () {
  2. var testHelper = window.testHelper;
  3. var encodeHTML = testHelper.encodeHTML;
  4. var caseFrame = window.caseFrame;
  5. function run() {
  6. // Init list
  7. var url = testHelper.dir() + '/';
  8. $.ajax({
  9. url: url
  10. }).then(
  11. function (content) {
  12. var pagePaths = fetchPagePaths(content);
  13. if (pagePaths.length) {
  14. caseFrame.init({
  15. dom: document.getElementById('main'),
  16. pagePaths: pagePaths
  17. });
  18. }
  19. else {
  20. renderFailInfo(url);
  21. }
  22. },
  23. function () {
  24. renderFailInfo(url);
  25. }
  26. );
  27. }
  28. function renderFailInfo(url) {
  29. url = encodeHTML(url);
  30. document.body.innerHTML = 'Error: This page requires a server that is able to list files when visiting'
  31. + ' <a target="_blank" href="' + url + '">' + url + '</a>.';
  32. }
  33. function fetchPagePaths(content) {
  34. var pageList = [];
  35. singleFetch(/"([^"/]*\/)*([^"/]+\.html)\s*"/g);
  36. singleFetch(/'([^'/]*\/)*([^'/]+\.html)\s*'/g);
  37. function singleFetch(pattern) {
  38. var result;
  39. while ((result = pattern.exec(content)) != null) {
  40. pageList.push(result[result.length - 1]);
  41. }
  42. }
  43. return pageList;
  44. }
  45. run();
  46. })();