Browse Source

Add tests for did-change-theme-color event

Brian R. Bondy 9 years ago
parent
commit
29b00ae0d6

+ 5 - 7
atom/browser/api/atom_api_web_contents.cc

@@ -490,13 +490,11 @@ void WebContents::MediaPaused() {
 }
 
 void WebContents::DidChangeThemeColor(SkColor theme_color) {
-  char themeColor[8] = { 0 };
-  snprintf(themeColor, sizeof(themeColor),
-      "#%02X%02X%02X",
-      SkColorGetR(theme_color),
-      SkColorGetG(theme_color),
-      SkColorGetB(theme_color));
-  Emit("did-change-theme-color", themeColor);
+  std::string hex_theme_color = base::StringPrintf("#%02X%02X%02X",
+    SkColorGetR(theme_color),
+    SkColorGetG(theme_color),
+    SkColorGetB(theme_color));
+  Emit("did-change-theme-color", hex_theme_color);
 }
 
 void WebContents::DocumentLoadedInFrame(

+ 16 - 0
docs/api/web-contents.md

@@ -235,6 +235,22 @@ Returns:
 Emitted when a result is available for
 [`webContents.findInPage`](web-contents.md#webcontentsfindinpage) request.
 
+### Event: 'media-started-playing'
+
+Emitted when media starts playing.
+
+### Event: 'media-paused'
+
+Emitted when media is paused or done playing.
+
+### Event: 'did-change-theme-color'
+
+Emitted when a page's theme color changes. This is usually due to encountering a meta tag:
+
+```html
+<meta name='theme-color' content='#ff0000'>
+```
+
 ## Instance Methods
 
 The `webContents` object has the following instance methods:

+ 3 - 1
docs/api/web-view-tag.md

@@ -647,4 +647,6 @@ Emitted when media is paused or done playing.
 
 Emitted when a page's theme color changes. This is usually due to encountering a meta tag:
 
-    <meta name='theme-color' content='#ff0000'>
+```html
+<meta name='theme-color' content='#ff0000'>
+```

+ 7 - 0
spec/fixtures/pages/theme-color.html

@@ -0,0 +1,7 @@
+<html>
+  <head>
+    <meta name="theme-color" content="#ffeedd">
+  </head>
+  <body>
+  </body>
+</html>

+ 7 - 0
spec/webview-spec.coffee

@@ -406,3 +406,10 @@ describe '<webview> tag', ->
       webview.addEventListener 'did-finish-load', listener2
       webview.src = "file://#{fixtures}/pages/content.html"
       document.body.appendChild webview
+
+  describe 'did-change-theme-color event', ->
+    it 'emits when theme color changes', (done) ->
+      webview.addEventListener 'did-change-theme-color', (e) ->
+        done()
+      webview.src = "file://#{fixtures}/pages/theme-color.html"
+      document.body.appendChild webview