#!/usr/bin/env ruby
#
# Copyright (C) 2003-2005 Kouichirou Eto
#     All rights reserved.
#     This is free software with ABSOLUTELY NO WARRANTY.
#
# You can redistribute it and/or modify it under the terms of 
# the GNU General Public License version 2.
#

require "pp"

def nu_replace_line(line)
  return line.gsub(/require \"t\/test\"/) {
    "require \"qwik\/test-common\""
  }
end

def nu2replace_line(line)
  return line.gsub(/class TC\_/) {
    "class Test"
  }
end

def nu3replace_line(line)
  return line.gsub(/if \$debug/) {
    "if defined?($debug) && $debug"
  }
end

def nu4replace_line(line)
  return line.gsub(/assert_wiki/) {
    "ok_wi"
  }
end

def nu5replace_line(line)
  return line.gsub(/assert_in\(/) {
    "ok_in("
  }
end

def nu6replace_line(line)
  return line.gsub(/assert_xpath/) {
    "ok_xp"
  }
end

def nu7replace_line(line)
  return line.gsub(/assert_equal/) {
    "ok_eq"
  }
end

def nu8replace_line(line)
  return line.gsub(/require \"test\/unit\"/) {
    "require \"qwik\/testunit\""
  }
end

def nu9replace_line(line)
  return line.gsub(/assert_xml/) {
    "ok_in"
  }
end

def nu10replace_line(line)
  return line.gsub(/require \"qwik\/memory\"/) {
    "require \"qwik\/server-memory\""
  }
end

def nu11replace_line(line)
  return line.gsub(/include TestQuickMLModule/) {
    "include TestModuleML"
  }
end

def nu12replace_line(line)
  return line.gsub(/include TestMLSessionModule/) {
    "include TestModuleML"
  }
end

def nu13replace_line(line)
  return line.gsub(/require \"qwik\/test-module-ms\"/) {
    "require \"qwik/test-module-ml\""
  }
end

def replace_line(line)
  return line.gsub(/user@e.com/) {
    "bob@example.net"
  }
end

def dummy_replace_line(line)	# dummy
  return line
end

def main
  Dir.glob("test-sub-*.rb") {|fname|
    content = open(fname, "rb") {|f| f.read }
    
    newcontent = ""
    replace = false
    content.each {|line|
      newline = replace_line(line)
      if newline != line
	pp newline
	replace = true
      end
      newcontent << newline
    }

    if replace
      open(fname+".bak", "wb") {|f|
	f.print content # make backup
      }
      open(fname, "wb") {|f|
	f.print newcontent # make new content
      }
    end
  }
end
main
