[fiddle] Fix display of text only fiddles.

Also add Gold test to avoid regressing.

Change-Id: I8bf07bc6325c86d21bc59eba26f9e300c7f51570
Reviewed-on: https://skia-review.googlesource.com/c/buildbot/+/324079
Reviewed-by: Joe Gregorio <jcgregorio@google.com>
Commit-Queue: Joe Gregorio <jcgregorio@google.com>
diff --git a/fiddlek/modules/fiddle-sk/fiddle-sk-demo.html b/fiddlek/modules/fiddle-sk/fiddle-sk-demo.html
index e7e23f1..6214c93 100644
--- a/fiddlek/modules/fiddle-sk/fiddle-sk-demo.html
+++ b/fiddlek/modules/fiddle-sk/fiddle-sk-demo.html
@@ -23,6 +23,7 @@
     <button id=mode_after_run_success>Run Success</button>
     <button id=mode_animation>Animation</button>
     <button id=mode_basic>Basic + Embed</button>
+    <button id=mode_text>Text Only</button>
   </div>
   <div id=mode_complete>
     <!-- Puppeteer lacks a wait to wait on events, so we stuff a <pre> tag in
diff --git a/fiddlek/modules/fiddle-sk/fiddle-sk-demo.ts b/fiddlek/modules/fiddle-sk/fiddle-sk-demo.ts
index cecc73b..aa6dabe 100644
--- a/fiddlek/modules/fiddle-sk/fiddle-sk-demo.ts
+++ b/fiddlek/modules/fiddle-sk/fiddle-sk-demo.ts
@@ -349,5 +349,64 @@
   fiddle.querySelector('img.cpu')!.addEventListener('load', modeComplete);
 });
 
+
+document.querySelector('#mode_text')!.addEventListener('click', () => {
+  beforeMode();
+  fiddle.config = {
+    display_options: false,
+    embedded: false,
+    cpu_embedded: true,
+    gpu_embedded: true,
+    options_open: true,
+    basic_mode: false,
+    domain: 'https://fiddle.skia.org',
+    bug_link: true,
+    sources: [1, 2, 3, 4, 5, 6],
+    loop: true,
+    play: true,
+  };
+
+  fiddle.options = {
+    textOnly: true,
+    srgb: false,
+    f16: false,
+    width: 128,
+    height: 128,
+    animated: false,
+    duration: 5,
+    offscreen: true,
+    offscreen_width: 256,
+    offscreen_height: 256,
+    offscreen_sample_count: 1,
+    offscreen_texturable: false,
+    offscreen_mipmap: false,
+    source: 1,
+    source_mipmap: true,
+  };
+
+  fiddle.runResults = {
+    compile_errors: [],
+    runtime_error: '',
+    fiddleHash: 'b4c2c1465df5c54c953b1889bd3c47e7',
+    text: `void assert(bool cond) {
+      SkDebugf("%d\n", cond);
+    }
+    
+    void draw(SkCanvas* canvas) {
+    SkRRect r =
+          SkRRect::MakeRectXY(SkRect::MakeLTRB(421.5, 16, 526.5, 64), 24, 24);
+      assert(!r.isComplex());
+      SkMatrix matrix;
+      matrix.setScaleTranslate(1.0102191, 1.0102191, -2.4219234, 2.98397303);
+      SkRRect transformed;
+      r.transform(matrix, &transformed);
+      assert(!transformed.isComplex());
+    
+    }`,
+  };
+  fiddle.querySelector('test-src-sk')!.addEventListener('change', modeComplete);
+});
+
+
 document.querySelector<HTMLButtonElement>('#mode_start')!.click();
 document.querySelector<ThemeChooserSk>('theme-chooser-sk')!.darkmode = true;
diff --git a/fiddlek/modules/fiddle-sk/fiddle-sk.ts b/fiddlek/modules/fiddle-sk/fiddle-sk.ts
index f3503c4..b8dbd57 100644
--- a/fiddlek/modules/fiddle-sk/fiddle-sk.ts
+++ b/fiddlek/modules/fiddle-sk/fiddle-sk.ts
@@ -361,7 +361,7 @@
       <h2 ?hidden=${ele._config.embedded}>Output</h2>
 
       <div class="textoutput">
-        <test-src-sk src=${ele.textURL()}></test-src-sk>
+        <test-src-sk .src=${ele.textURL()}></test-src-sk>
       </div>
     `;
   };
@@ -475,8 +475,6 @@
           </select>
         </div>
       </div>
-
-      ${FiddleSk.textOnlyResults(ele)} ${FiddleSk.runDetails(ele)}
     `;
   };
 
@@ -504,7 +502,15 @@
 
       <textarea-numbers-sk .value=${ele._runResults.text}></textarea-numbers-sk>
 
-      ${FiddleSk.actions(ele)} ${FiddleSk.errors(ele)} ${FiddleSk.results(ele)}
+      ${FiddleSk.actions(ele)}
+
+      ${FiddleSk.errors(ele)}
+
+      ${FiddleSk.results(ele)}
+
+      ${FiddleSk.textOnlyResults(ele)}
+
+      ${FiddleSk.runDetails(ele)}
     `;
 
   connectedCallback(): void {
diff --git a/fiddlek/modules/fiddle-sk/fiddle-sk_puppeteer_test.ts b/fiddlek/modules/fiddle-sk/fiddle-sk_puppeteer_test.ts
index 5ac033e..0c82f14 100644
--- a/fiddlek/modules/fiddle-sk/fiddle-sk_puppeteer_test.ts
+++ b/fiddlek/modules/fiddle-sk/fiddle-sk_puppeteer_test.ts
@@ -45,5 +45,10 @@
       await testBed.page.waitForSelector('#mode_complete pre');
       await takeScreenshot(testBed.page, 'fiddle', 'mode_basic');
     });
+    it('correctly displays text only results', async () => {
+      await testBed.page.click('#mode_text');
+      await testBed.page.waitForSelector('#mode_complete pre');
+      await takeScreenshot(testBed.page, 'fiddle', 'mode_text');
+    });
   });
 });
diff --git a/fiddlek/modules/test-src-sk/test-src-sk.ts b/fiddlek/modules/test-src-sk/test-src-sk.ts
index 74d962c..7c77984 100644
--- a/fiddlek/modules/test-src-sk/test-src-sk.ts
+++ b/fiddlek/modules/test-src-sk/test-src-sk.ts
@@ -34,6 +34,9 @@
   }
 
   set src(val: string) {
+    if (val === '') {
+      return;
+    }
     this._src = val;
     fetch(val).then((resp) => {
       if (!resp.ok) {