|
|
@@ -159,6 +159,36 @@ TEST_F(MaterialTest, DifferentProgramDoesntChangeUniformId) {
|
|
|
EXPECT_THAT(mat_1.uniforms[0].texture, Eq(mat_2.uniforms[0].texture));
|
|
|
}
|
|
|
|
|
|
+TEST_F(MaterialTest, TexFileSkipsUniformLoad) {
|
|
|
+ using graphics::materials::uniform;
|
|
|
+ EXPECT_CALL(mock, compile(_, make_vector(1, 1), _)).Times(1);
|
|
|
+ auto material =
|
|
|
+ mock.get(mock.get(cast_p(1), "resources/black.bmp", "u_normalMap"));
|
|
|
+ EXPECT_THAT(material.uniforms, SizeIs(1));
|
|
|
+ // Because we never initialize any textures, we are within the first three
|
|
|
+ // texture ID units.
|
|
|
+ EXPECT_THAT(material.uniforms[0].texture.id, Eq(1));
|
|
|
+ // Test the mapping from "u_normalMap" to uniform::NORMAL
|
|
|
+ EXPECT_THAT(material.uniforms[0].uniform_id, Eq(uniform::NORMAL));
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(MaterialTest, MissingFileNoExcept) {
|
|
|
+ EXPECT_NO_THROW(
|
|
|
+ mock.get(mock.get(cast_p(1), "resources/missing.png", "u_normalMap")));
|
|
|
+}
|
|
|
+
|
|
|
+TEST_F(MaterialTest, MissingFileFallsBackOnUniform) {
|
|
|
+ using graphics::materials::uniform;
|
|
|
+ auto material =
|
|
|
+ mock.get(mock.get(cast_p(1), "resources/missing.png", "u_normalMap"));
|
|
|
+ EXPECT_THAT(material.uniforms, SizeIs(1));
|
|
|
+ // Because we never initialize any textures, we are within the first three
|
|
|
+ // texture ID units.
|
|
|
+ EXPECT_THAT(material.uniforms[0].texture.id, AllOf(Ge(1), Le(3)));
|
|
|
+ // Test the mapping from "u_normalMap" to uniform::NORMAL
|
|
|
+ EXPECT_THAT(material.uniforms[0].uniform_id, Eq(uniform::NORMAL));
|
|
|
+}
|
|
|
+
|
|
|
using ShaderTest = ManagerTest;
|
|
|
TEST_F(ShaderTest, CanCreateShaders) {
|
|
|
using graphics::shaders::type;
|