From 03d6be087748a4d640253d2614fafa313675d9ff Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?=
 <skjnldsv@protonmail.com>
Date: Mon, 7 May 2018 14:09:31 +0200
Subject: [PATCH] Added new tests
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
---
 tests/lib/AvatarTest.php | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/tests/lib/AvatarTest.php b/tests/lib/AvatarTest.php
index 4914c02bd14..a9b798fe5d7 100644
--- a/tests/lib/AvatarTest.php
+++ b/tests/lib/AvatarTest.php
@@ -48,6 +48,9 @@ class AvatarTest extends \Test\TestCase {
 			$this->createMock(ILogger::class),
 			$this->config
 		);
+		
+		// abcdefghi is a convenient name that our algorithm convert to our nextcloud blue 0082c9
+		$this->user->method('getDisplayName')->willReturn('abcdefghi');
 	}
 
 	public function testGetNoAvatar() {
@@ -226,4 +229,37 @@ class AvatarTest extends \Test\TestCase {
 		$this->avatar->set($image->data());
 	}
 
+	public function testGenerateSvgAvatar() {
+		$avatar = $this->avatar->getAvatarVector(64);
+		
+		$svg = '
+		<svg width="64" height="64" version="1.1" viewBox="0 0 500 500" xmlns="http://www.w3.org/2000/svg">
+			<rect width="100%" height="100%" fill="#0082c9"></rect>
+			<text x="50%" y="350" style="font-weight:600;font-size:278px;font-family:\'Open Sans\';text-anchor:middle;fill:#fff">A</text>
+		</svg>';
+		$this->assertEquals($avatar, $svg);
+	}
+
+	public function testHashToInt() {
+		$hashToInt = $this->invokePrivate($this->avatar, 'hashToInt', ['abcdef', 18]);
+		$this->assertTrue(gettype($hashToInt) === 'integer');
+	}
+
+	public function testMixPalette() {
+		$colorFrom = new \OC\Color(0,0,0);
+		$colorTo = new \OC\Color(6,12,18);
+		$steps = 6;
+		$palette = $this->invokePrivate($this->avatar, 'mixPalette', [$steps, $colorFrom, $colorTo]);
+		foreach($palette as $j => $color) {
+			// calc increment
+			$incR = $colorTo->r / $steps * $j;
+			$incG = $colorTo->g / $steps * $j;
+			$incB = $colorTo->b / $steps * $j;
+			// ensure everything is equal
+			$this->assertEquals($color, new \OC\Color($incR, $incG,$incB));
+		}
+		$hashToInt = $this->invokePrivate($this->avatar, 'hashToInt', ['abcdef', 18]);
+		$this->assertTrue(gettype($hashToInt) === 'integer');
+	}
+
 }
-- 
GitLab