diff -r 000000000000 -r 6474c204b198 browser/devtools/sourceeditor/test/browser_detectindent.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/browser/devtools/sourceeditor/test/browser_detectindent.js Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,103 @@ +/* Any copyright is dedicated to the Public Domain. + http://creativecommons.org/publicdomain/zero/1.0/ */ + +"use strict"; + + +const TWO_SPACES_CODE = [ +"/*", +" * tricky comment block", +" */", +"div {", +" color: red;", +" background: blue;", +"}", +" ", +"span {", +" padding-left: 10px;", +"}" +].join("\n"); + +const FOUR_SPACES_CODE = [ +"var obj = {", +" addNumbers: function() {", +" var x = 5;", +" var y = 18;", +" return x + y;", +" },", +" ", +" /*", +" * Do some stuff to two numbers", +" * ", +" * @param x", +" * @param y", +" * ", +" * @return the result of doing stuff", +" */", +" subtractNumbers: function(x, y) {", +" var x += 7;", +" var y += 18;", +" var result = x - y;", +" result %= 2;", +" }", +"}" +].join("\n"); + +const TABS_CODE = [ +"/*", +" * tricky comment block", +" */", +"div {", +"\tcolor: red;", +"\tbackground: blue;", +"}", +"", +"span {", +"\tpadding-left: 10px;", +"}" +].join("\n"); + +const NONE_CODE = [ +"var x = 0;", +" // stray thing", +"var y = 9;", +" ", +"" +].join("\n"); + +function test() { + waitForExplicitFinish(); + + setup((ed, win) => { + is(ed.getOption("indentUnit"), 2, + "2 spaces before code added"); + is(ed.getOption("indentWithTabs"), false, + "spaces is default"); + + ed.setText(NONE_CODE); + is(ed.getOption("indentUnit"), 2, + "2 spaces after un-detectable code"); + is(ed.getOption("indentWithTabs"), false, + "spaces still set after un-detectable code"); + + ed.setText(FOUR_SPACES_CODE); + is(ed.getOption("indentUnit"), 4, + "4 spaces detected in 4 space code"); + is(ed.getOption("indentWithTabs"), false, + "spaces detected in 4 space code"); + + ed.setText(TWO_SPACES_CODE); + is(ed.getOption("indentUnit"), 2, + "2 spaces detected in 2 space code"); + is(ed.getOption("indentWithTabs"), false, + "spaces detected in 2 space code"); + + ed.setText(TABS_CODE); + is(ed.getOption("indentUnit"), 2, + "2 space indentation unit"); + is(ed.getOption("indentWithTabs"), true, + "tabs detected in majority tabs code"); + + teardown(ed, win); + }); +}