Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / webgl / src / sdk / tests / conformance / extensions / get-extension.html
index 34a50ac..67459c2 100644 (file)
 <div id="console"></div>
 <script>
 "use strict";
+
+var pseudoRandom = (function() {
+    var seed = 3;
+    return function() {
+        seed = (seed * 11 + 17) % 25;
+        return seed / 25;
+    };
+})();
+
 var randomizeCase = function(str) {
     var newChars = [];
     for (var ii = 0; ii < str.length; ++ii) {
         var c = str.substr(ii, 1);
-        var m = (Math.random() > 0.5) ? c.toLowerCase() : c.toUpperCase();
+        var m = (pseudoRandom() > 0.5) ? c.toLowerCase() : c.toUpperCase();
         newChars.push(m);
     }
     return newChars.join("");
-}
+};
 
 description();
-debug("");
 
 var wtu = WebGLTestUtils;
 var canvas = document.getElementById("canvas");
 var gl = wtu.create3DContext(canvas);
 
+var ii;
+
 debug("check every extension advertised can be enabled");
-var extensions = [];
+debug("");
 var extensionNames = gl.getSupportedExtensions();
-for (var ii = 0; ii < extensionNames.length; ++ii) {
+var extensionNamesLower = [];
+for (ii = 0; ii < extensionNames.length; ++ii) {
+    extensionNamesLower.push(extensionNames[ii].toLowerCase());
+}
+
+for (ii = 0; ii < extensionNames.length; ++ii) {
     var originalName = extensionNames[ii];
     var mixedName = randomizeCase(originalName);
     var extension = gl.getExtension(mixedName);
@@ -85,10 +100,18 @@ for (var ii = 0; ii < extensionNames.length; ++ii) {
             extension2.testObjectProperty === kTestObject &&
             extension2.testNumberProperty === kTestNumber,
             "object returned by 2nd call to getExtension has same properties");
+
+        var prefixedVariants = wtu.getExtensionPrefixedNames(originalName);
+        for (var jj = 0; jj < prefixedVariants.length; ++jj) {
+            assertMsg(
+                gl.getExtension(prefixedVariants[jj]) === null ||
+                extensionNamesLower.indexOf(prefixedVariants[jj].toLowerCase()) !== -1,
+                "getExtension('" + prefixedVariants[jj] + "') returns an object only if the name is returned by getSupportedExtensions");
+        }
     }
+    debug("");
 }
 
-debug("");
 var successfullyParsed = true;
 </script>
 <script src="../../resources/js-test-post.js"></script>