Skip to content

Commit d45496d

Browse files
committed
Ignores image trace's source attribute that are not data URIs
1 parent 1c893e2 commit d45496d

File tree

2 files changed

+21
-3
lines changed

2 files changed

+21
-3
lines changed

src/traces/image/defaults.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,15 @@
1111
var Lib = require('../../lib');
1212
var attributes = require('./attributes');
1313
var constants = require('./constants');
14+
var dataUri = require('../../snapshot/helpers').IMAGE_URL_PREFIX;
1415

1516
module.exports = function supplyDefaults(traceIn, traceOut) {
1617
function coerce(attr, dflt) {
1718
return Lib.coerce(traceIn, traceOut, attributes, attr, dflt);
1819
}
19-
var source = coerce('source');
20-
traceOut._isFromSource = !!source;
20+
coerce('source');
21+
if(traceOut.source && !traceOut.source.match(dataUri)) traceOut.source = null;
22+
traceOut._isFromSource = !!traceOut.source;
2123

2224
var z = coerce('z');
2325
traceOut._isFromZ = !(z === undefined || !z.length || !z[0] || !z[0].length);

test/jasmine/tests/image_test.js

+17-1
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,23 @@ describe('image supplyDefaults', function() {
7070

7171
traceIn = {
7272
type: 'image',
73-
source: 'base64'
73+
source: 'data:image/png;base64,somedata'
74+
};
75+
traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'image'}, 0, layout);
76+
expect(traceOut.visible).toBe(true);
77+
});
78+
79+
it('should set visible to false when source is a URL', function() {
80+
traceIn = {
81+
source: 'https://antrg.com/assets/img/portrait_2013_circle_200px.png'
82+
};
83+
supplyDefaults(traceIn, traceOut);
84+
expect(traceOut.visible).toBe(false);
85+
expect(traceOut.source).toBe(null);
86+
87+
traceIn = {
88+
type: 'image',
89+
source: 'data:image/png;base64,somedata'
7490
};
7591
traceOut = Plots.supplyTraceDefaults(traceIn, {type: 'image'}, 0, layout);
7692
expect(traceOut.visible).toBe(true);

0 commit comments

Comments
 (0)