blob: 67cadc62559ec7f85efbe24ad583a0e15363c08c [file] [log] [blame]
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script>
function test()
{
WebInspector.showPanel("scripts");
function createMockProject()
{
var workspace = new WebInspector.Workspace();
var projectDelegate = new WebInspector.SimpleProjectDelegate("", WebInspector.projectTypes.Network);
var project = workspace.addProject(projectDelegate);
project.requestFileContent = function(uri, callback)
{
callback("<script content>", false, "text/javascript");
}
project.setFileContent = function(uri, newContent, callback)
{
}
return project;
}
function dumpUISourceCodeWithRevisions(uiSourceCode)
{
var content = uiSourceCode._content;
var revisionsString = "";
for (var i = 0; i < uiSourceCode.history.length; ++i) {
var revision = uiSourceCode.history[i];
if (i !== 0)
revisionsString += ", ";
revisionsString += "'" + revision.content + "'";
}
InspectorTest.addResult("UISourceCode content: " + content);
InspectorTest.addResult(" revisions: " + revisionsString);
}
InspectorTest.runTestSuite([
function testAddRevisionsRevertToOriginal(next)
{
var uiSourceCode = new WebInspector.UISourceCode(createMockProject(), "uri", "originURL", "url", WebInspector.resourceTypes.Script);
uiSourceCode.setWorkingCopy("content1");
uiSourceCode.setWorkingCopy("content2");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("First revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content3");
uiSourceCode.setWorkingCopy("content4");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("Second revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.revertToOriginal();
InspectorTest.addResult("Reverted to original.");
dumpUISourceCodeWithRevisions(uiSourceCode);
next();
},
function testAddRevisionsRevertAndClearHistory(next)
{
var uiSourceCode = new WebInspector.UISourceCode(createMockProject(), "uri2", "originURL2", "url2", WebInspector.resourceTypes.Script);
uiSourceCode.setWorkingCopy("content1");
uiSourceCode.setWorkingCopy("content2");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("First revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content3");
uiSourceCode.setWorkingCopy("content4");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("Second revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.revertAndClearHistory(revertedAndClearedHistory);
function revertedAndClearedHistory()
{
InspectorTest.addResult("Reverted and cleared history.");
dumpUISourceCodeWithRevisions(uiSourceCode);
next();
}
},
function testAddRevisionsRevertToPrevious(next)
{
var uiSourceCode = new WebInspector.UISourceCode(createMockProject(), "uri3", "originURL3", "url3", WebInspector.resourceTypes.Script);
uiSourceCode.setWorkingCopy("content1");
uiSourceCode.setWorkingCopy("content2");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("First revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content3");
uiSourceCode.setWorkingCopy("content4");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("Second revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.history[0].revertToThis();
InspectorTest.addResult("Reverted to previous revision.");
dumpUISourceCodeWithRevisions(uiSourceCode);
next();
},
function testRequestContentAddRevisionsRevertToOriginal(next)
{
var uiSourceCode = new WebInspector.UISourceCode(createMockProject(), "uri4", "originURL4", "url4", WebInspector.resourceTypes.Script);
uiSourceCode.requestContent(contentReceived);
function contentReceived()
{
InspectorTest.addResult("Content requested.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content1");
uiSourceCode.setWorkingCopy("content2");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("First revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content3");
uiSourceCode.setWorkingCopy("content4");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("Second revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.revertToOriginal();
InspectorTest.addResult("Reverted to original.");
dumpUISourceCodeWithRevisions(uiSourceCode);
next();
}
},
function testRequestContentAddRevisionsRevertAndClearHistory(next)
{
var uiSourceCode = new WebInspector.UISourceCode(createMockProject(), "uri5", "originURL5", "url5", WebInspector.resourceTypes.Script);
uiSourceCode.requestContent(contentReceived);
function contentReceived()
{
InspectorTest.addResult("Content requested.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content1");
uiSourceCode.setWorkingCopy("content2");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("First revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content3");
uiSourceCode.setWorkingCopy("content4");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("Second revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.revertAndClearHistory(revertedAndClearedHistory);
function revertedAndClearedHistory()
{
InspectorTest.addResult("Reverted and cleared history.");
dumpUISourceCodeWithRevisions(uiSourceCode);
next();
}
}
},
function testRequestContentAddRevisionsRevertToPrevious(next)
{
var uiSourceCode = new WebInspector.UISourceCode(createMockProject(), "uri6", "originURL6", "url6", WebInspector.resourceTypes.Script);
uiSourceCode.requestContent(contentReceived);
function contentReceived()
{
InspectorTest.addResult("Content requested.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content1");
uiSourceCode.setWorkingCopy("content2");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("First revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.setWorkingCopy("content3");
uiSourceCode.setWorkingCopy("content4");
uiSourceCode.commitWorkingCopy(function() { });
InspectorTest.addResult("Second revision added.");
dumpUISourceCodeWithRevisions(uiSourceCode);
uiSourceCode.history[0].revertToThis();
InspectorTest.addResult("Reverted to previous revision.");
dumpUISourceCodeWithRevisions(uiSourceCode);
next();
}
},
]);
}
</script>
</head>
<body onload="runTest()">
<p>Tests revision support in UISourceCode.</p>
<a href="https://bugs.webkit.org/show_bug.cgi?id=97669">Bug 97669</a>
</body>
</html>