blob: 890970bce58f3eec87ccf687023a661203a4daad [file] [log] [blame]
<html>
<head>
<script src="../http/tests/inspector/inspector-test.js"></script>
<script>
function test()
{
WebInspector.showPanel("scripts");
function createMockWorkspace()
{
var networkWorkspaceProvider = new WebInspector.NetworkWorkspaceProvider();
var workspace = new WebInspector.Workspace();
workspace.addProject("network", networkWorkspaceProvider);
workspace.requestFileContent = function(path, callback)
{
callback("<script content>", false, "text/javascript");
}
return workspace;
}
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(createMockWorkspace(), "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(createMockWorkspace(), "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(createMockWorkspace(), "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(createMockWorkspace(), "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(createMockWorkspace(), "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(createMockWorkspace(), "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>