exp/font: droid->noto fallback in tests

The Droid font has been superseeded by the Noto family upstream in
Android. This resulted in Debian and inherently Ubuntu too dropping
support for the first in favor of the latter. This CL ensures that
tests will pass on both older and newer debian based distros.

Refs:
 * https://github.com/googlei18n/noto-fonts/blob/master/FAQ.md#how-does-noto-relate-to-droid
 * https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=804683

Fixes golang/go#16990

Change-Id: Id0820d6c3bfde7822984fac58054f7dcc4625685
Reviewed-on: https://go-review.googlesource.com/28495
Reviewed-by: Elias Naur <elias.naur@gmail.com>
diff --git a/exp/font/font_linux.go b/exp/font/font_linux.go
index ac3ea91..d91fe95 100644
--- a/exp/font/font_linux.go
+++ b/exp/font/font_linux.go
@@ -9,9 +9,23 @@
 import "io/ioutil"
 
 func buildDefault() ([]byte, error) {
-	return ioutil.ReadFile("/usr/share/fonts/truetype/droid/DroidSans.ttf")
+	// Try Noto first, but fall back to Droid as the latter was deprecated
+	noto, nerr := ioutil.ReadFile("/usr/share/fonts/truetype/noto/NotoSans-Regular.ttf")
+	if nerr != nil {
+		if droid, err := ioutil.ReadFile("/usr/share/fonts/truetype/droid/DroidSans.ttf"); err == nil {
+			return droid, nil
+		}
+	}
+	return noto, nerr
 }
 
 func buildMonospace() ([]byte, error) {
-	return ioutil.ReadFile("/usr/share/fonts/truetype/droid/DroidSansMono.ttf")
+	// Try Noto first, but fall back to Droid as the latter was deprecated
+	noto, nerr := ioutil.ReadFile("/usr/share/fonts/truetype/noto/NotoMono-Regular.ttf")
+	if nerr != nil {
+		if droid, err := ioutil.ReadFile("/usr/share/fonts/truetype/droid/DroidSansMono.ttf"); err == nil {
+			return droid, nil
+		}
+	}
+	return noto, nerr
 }