Add additional ES2 and WebGL 1.0 Validation

Adds validation for various cases.

Adds corresponding unit tests.

Change-Id: I9451d286bcf2d6fa32de495e5d0bdec1eb5c955d
Reviewed-on: https://chromium-review.googlesource.com/633157
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/validationES.cpp b/src/libANGLE/validationES.cpp
index d62a270..7b55135 100644
--- a/src/libANGLE/validationES.cpp
+++ b/src/libANGLE/validationES.cpp
@@ -2870,6 +2870,13 @@
                 ANGLE_VALIDATION_ERR(context, InvalidOperation(), InsufficientBufferSize);
                 return false;
             }
+
+            ASSERT(typeSize > 0);
+            if (elementArrayBuffer->getSize() % typeSize != 0)
+            {
+                ANGLE_VALIDATION_ERR(context, InvalidOperation(), MismatchedByteCountType);
+                return false;
+            }
         }
         else if (!indices)
         {