chromium/third_party/blink/web_tests/fast/filesystem/resources/simple-readonly.js

if (this.importScripts) {
    importScripts('../resources/fs-worker-common.js');
    importScripts('../../../resources/js-test.js');
    importScripts('../resources/fs-test-util.js');
}

description("FileSystem API readonly attributes test.");

var fileSystem;
var fileEntry;
var fileMetadata;

function setReadonlyProperty(property, value)
{
    oldValue = eval(property);
    debug("trying to set readonly property " + property);
    evalAndLog(property + " = " + value);
    newValue = eval(property);
    if (oldValue == newValue) {
        testPassed(property + " is still " + oldValue);
    } else {
        testFailed(property + " value was changed");
    }
}

function errorCallback(err) {
  testFailed(err);
  finishJSTest();
}

function getFileCallback(entry) {
  fileEntry = entry;
  setReadonlyProperty("fileEntry.isFile", "false");
  setReadonlyProperty("fileEntry.isDirectory", "true");
  setReadonlyProperty("fileEntry.name", "'bar'");
  setReadonlyProperty("fileEntry.fullPath", "'bar'");
  setReadonlyProperty("fileEntry.filesystem", "null");
  finishJSTest();
}

function successCallback(fs) {
  fileSystem = fs;
  setReadonlyProperty("fileSystem.name", "'bar'");
  root = evalAndLog("root = fileSystem.root");
  evalAndLog("root.getFile('foo', {create:true}, getFileCallback, errorCallback)");
}

var jsTestIsAsync = true;
evalAndLog("webkitRequestFileSystem(TEMPORARY, 100, successCallback, errorCallback)");