'Check that the tabs set for the specified course is valid.  If it
isn\'t, raise InvalidTabsException with the complaint.
Specific rules checked:
- if no tabs specified, that\'s fine
- if tabs specified, first two must have type \'courseware\' and \'course_info\', in that order.'

@classmethod
def validate_tabs(cls, tabs):

    if ((tabs is None) or (len(tabs) == 0)):
        return
    if (len(tabs) < 2):
        raise InvalidTabsException("Expected    at    least    two    tabs.        tabs:    '{0}'".format(tabs))
    if (tabs[0].get('type') != 'course_info'):
        raise InvalidTabsException("Expected    first    tab    to    have    type    'course_info'.        tabs:    '{0}'".format(tabs))
    if (tabs[1].get('type') != 'courseware'):
        raise InvalidTabsException("Expected    second    tab    to    have    type    'courseware'.        tabs:    '{0}'".format(tabs))
    from openedx.core.lib.course_tabs import CourseTabPluginManager
    for tab_type in CourseTabPluginManager.get_tab_types():
        if (not tab_type.allow_multiple):
            cls._validate_num_tabs_of_type(tabs, tab_type.type, 1)
