diff --git a/src/test/ReactTestUtils.js b/src/test/ReactTestUtils.js index 7a368fb540..102816fbb8 100644 --- a/src/test/ReactTestUtils.js +++ b/src/test/ReactTestUtils.js @@ -174,14 +174,16 @@ var ReactTestUtils = { * components with the class name matching `className`. * @return {array} an array of all the matches. */ - scryRenderedDOMComponentsWithClass: function(root, className) { + scryRenderedDOMComponentsWithClass: function(root, classNames) { + if (!Array.isArray(classNames)) { + classNames = classNames.split(/\s+/); + } return ReactTestUtils.findAllInRenderedTree(root, function(inst) { if (ReactTestUtils.isDOMComponent(inst)) { - var instClassName = ReactDOM.findDOMNode(inst).className; - return ( - instClassName && - (('' + instClassName).split(/\s+/)).indexOf(className) !== -1 - ); + var classList = ReactDOM.findDOMNode(inst).className.split(/\s+/); + return classNames.every(function(className) { + return classList.indexOf(className) !== -1; + }); } return false; }); diff --git a/src/test/__tests__/ReactTestUtils-test.js b/src/test/__tests__/ReactTestUtils-test.js index a9b3d0042a..9e890629af 100644 --- a/src/test/__tests__/ReactTestUtils-test.js +++ b/src/test/__tests__/ReactTestUtils-test.js @@ -223,6 +223,47 @@ describe('ReactTestUtils', function() { expect(scryResults.length).toBe(1); }); + it('can scryRenderedDOMComponentsWithClass with multiple classes', function() { + var Wrapper = React.createClass({ + render: function() { + return