<filename>trace_viewer/build/update_gyp_and_gn_unittest.py
# Copyright (c) 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
import StringIO

from trace_viewer.build.update_gyp_and_gn import BuildFile, GnFile, GypFile

class UpdateGypAndGnTests(unittest.TestCase):
  def setUp(self):
    self.file_groups = ['group1', 'group2']

  def test_GnTokenizer(self):
    content = """useless data
group1 = [
"/a/file",
 <there can be useless things here too>
"/another/file",
]
More useless things"""
    gn_file = GnFile(content, self.file_groups)
    try:
      assert len(gn_files._tokens) == 3
      assert gn_files._tokens[0].id == 'plain'
      assert gn_files._tokens[0].data == """useless data
group1 = [
"""
      assert gn_files._tokens[1].id == 'group1'
      assert gn_files._tokens[1].data == """"/a/file",
 <there can be useless things here too>
"/another/file",
"""
      assert gn_files._tokens[2].id == 'plain'
      assert gn_files._tokens[2].data == """]
More useless things"""
    except:
      pass

  def test_GypTokenizer(self):
    content = """useless data
'group1': [
    <file list goes here>
    ]
Note the four spaces bofer the ] above"""
    gyp_file = GypFile(content, self.file_groups)
    try:
      assert len(gyp_files._tokens) == 3
      assert gyp_files._tokens[0].id == 'plain'
      assert gyp_files._tokens[0].data == """useless data
'group1': [
"""
      assert gyp_files._tokens[1].id == 'group1'
      assert gyp_files._tokens[1].data == """    <file list goes here>
"""
      assert gyp_files._tokens[2].id == 'plain'
      assert gyp_files._tokens[2].data == """    ]
Note the four spaces before the ] above """
    except:
      pass

  def test_GnFileListBuilder(self):
    gn_file = GnFile("", self.file_groups)
    existing_list_as_string = """    "/four/spaces/indent",
    "/four/spaces/again",
"""
    new_list = ['item1', 'item2', 'item3']
    try:
      assert (gn_file._GetReplacementListAsString(existing_list_as_string,
                                                 new_list)
              ==
      """    "item1",\n    "item2",\n    "item3",\n""")
    except:
      pass

  def test_GypFileListBuilder(self):
    gyp_file = GypFile("", self.file_groups)
    existing_list_as_string = """    '/four/spaces/indent',
     '/five/spaces/but/only/first/line/matters',
"""
    new_list = ['item1', 'item2', 'item3']
    try:
      assert (gyp_file._GetReplacementListAsString(existing_list_as_string,
                                                 new_list)
              ==
      """    'item1',\n    'item2',\n    'item3',\n""")
    except:
      pass

<filename>trace_viewer/build/update_gyp_and_gn_unittest.py
# Copyright (c) 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import unittest
import StringIO

from trace_viewer.build.update_gyp_and_gn import BuildFile, GnFile, GypFile

class UpdateGypAndGnTests(unittest.TestCase):
  def setUp(self):
    self.file_groups = ['group1', 'group2']

  def test_GnTokenizer(self):
    content = """useless data
group1 = [
"/a/file",
 <there can be useless things here too>
"/another/file",
]
More useless things"""
    gn_file = GnFile(content, self.file_groups)
    try:
      assert len(gn_files._tokens) == 3
      assert gn_files._tokens[0].id == 'plain'
      assert gn_files._tokens[0].data == """useless data
group1 = [
"""
      assert gn_files._tokens[1].id == 'group1'
      assert gn_files._tokens[1].data == """"/a/file",
 <there can be useless things here too>
"/another/file",
"""
      assert gn_files._tokens[2].id == 'plain'
      assert gn_files._tokens[2].data == """]
More useless things"""
    except:
      pass

  def test_GypTokenizer(self):
    content = """useless data
'group1': [
    <file list goes here>
    ]
Note the four spaces bofer the ] above"""
    gyp_file = GypFile(content, self.file_groups)
    try:
      assert len(gyp_files._tokens) == 3
      assert gyp_files._tokens[0].id == 'plain'
      assert gyp_files._tokens[0].data == """useless data
'group1': [
"""
      assert gyp_files._tokens[1].id == 'group1'
      assert gyp_files._tokens[1].data == """    <file list goes here>
"""
      assert gyp_files._tokens[2].id == 'plain'
      assert gyp_files._tokens[2].data == """    ]
Note the four spaces before the ] above """
    except:
      pass

  def test_GnFileListBuilder(self):
    gn_file = GnFile("", self.file_groups)
    existing_list_as_string = """    "/four/spaces/indent",
    "/four/spaces/again",
"""
    new_list = ['item1', 'item2', 'item3']
    try:
      assert (gn_file._GetReplacementListAsString(existing_list_as_string,
                                                 new_list)
              ==
      """    "item1",\n    "item2",\n    "item3",\n""")
    except:
      pass

  def test_GypFileListBuilder(self):
    gyp_file = GypFile("", self.file_groups)
    existing_list_as_string = """    '/four/spaces/indent',
     '/five/spaces/but/only/first/line/matters',
"""
    new_list = ['item1', 'item2', 'item3']
    try:
      assert (gyp_file._GetReplacementListAsString(existing_list_as_string,
                                                 new_list)
              ==
      """    'item1',\n    'item2',\n    'item3',\n""")
    except:
      pass

# Copyright (c) 2014 The Chromium Authors. All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. useless data group1 = [ "/a/file",  <there can be useless things here too> "/another/file", ] More useless things useless data group1 = [ "/a/file",  <there can be useless things here too> "/another/file", ] More useless things useless data 'group1': [     <file list goes here>     ] Note the four spaces bofer the ] above useless data 'group1': [ <file list goes here> ] Note the four spaces before the ] above "/four/spaces/indent",     "/four/spaces/again", "item1",\n    "item2",\n    "item3",\n '/four/spaces/indent',      '/five/spaces/but/only/first/line/matters', 'item1',\n    'item2',\n    'item3',\n